🐡

HTTPってなに?

2024/05/28に公開

HTTP[1]とは?

Webクライアント(Chromeなど)とWebサーバの間でデータの送受信を行うためのTCP/IPのアプリケーション層のプロトコル[2]
HTMLファイル、スタイルシート、スクリプト、画像などを送受信できる

WebクライアントからWebサーバへデータを送信し要求することをHTTPリクエスト
WebサーバからWebクライアントへの返答をHTTPレスポンスという

HTTPリクエスト

WebクライアントからWebサーバへデータを送信し要求すること

HTTPレスポンス

HTTPリクエストに対する返答のこと

リクエストメッセージ

HTTPリクエストを投げる際に送信される情報のことで以下の3つで構成されている

  • リクエストライン
  • HTTPヘッダ
  • メッセージボディ

リクエストライン

以下の3つで構成されている

  • メソッド
  • リクエストURI
  • HTTPのバージョン

メソッド

メソッドは5種類存在する

GET POST PUT PATCH DELETE
データの取得 データの送信(新規) データの送信(更新) データの送信(付与) データの削除

HTTPヘッダ

クライアントの情報やリクエストの内容や形式などが含まれている
大量にあるのでこちらを参照してください

https://apidog.com/jp/blog/http-request-headers-summary/

メッセージボディ

GET, HEAD, DELETE, OPTIONSの場合は基本的に含まれていないことが多い
POSTの場合は、受け渡されるパラメータが含まれている

ステータスコード

100-199 200–299 300–399 400–499 500–599
処理が継続 リクエストが成功 他のリソースへのリダイレクト クライアントエラー サーバーエラー

HTTPはステートレスである

HTTPはWebクライアントとWebサーバの間でデータの送受信を行いますが、サーバは多くのクライアントの通信を保持してしまうとサーバー負担が大きくなってしまう為、クライアントのアプリケーション状態を保持していません。
これをステートレスといいます。

しかし、ステートレスだとWEBが進化するにつれて不都合が出てきてしまいました。
それを解消する為に使用されたのが cookieとsessionです

https://qiita.com/k-o-u/items/4637a4a32a2d32190a57

脚注
  1. Hypertext Transfer Protocolの略 ↩︎

  2. 通信規約、通信機器同士が通信を行うためのルール ↩︎

Discussion