0
0

HTTPについて

Posted at

HTTPとは

Hyper Text Transfer Protocolの略で、HTMLで書かれた文書などの情報をやり取りする時に使われる通信規則(プロトコル)のこと

プロトコルとは

コンピュータでデータをやりとりするために定められた手順や規約、信号の電気的規則、通信における送受信の手順などを定めた規格のこと

HTTPリクエストとは

ウェブブラウザがウェブサーバーに対して情報を要求するためのメッセージです。たとえば、ウェブサイトを開くとき、ブラウザはそのサイトのサーバーに HTTP リクエストを送信します。
HTTPリクエストはリクエストライン、ヘッダ、メッセージボディの 3 つの要素から構成されています。

リクエストライン

リクエストラインはリクエストの最初の行で、以下の 3 つの部分から成ります

  1. HTTPメソッド:リクエストの種類を指定します
    HTTP メソッドはリクエストの種類を指定し、サーバーがリクエストをどのように処理するかを決定します。主なメソッドには以下のものがあります:
    GET:サーバーからリソースを取得するために使用します。例えば、ウェブページを表示する時に使用されます。
    POST:サーバーにデータを送信して新しいリソースを作成するために使用します。例えば、フォームに入力されたデータを送信する時に使用されます。
    PUT:サーバー上の既存のリソースを更新するために使用します。例えば、既存のユーザーデータを更新する時に使用されます。
    DELETE:サーバー上のリソースを削除するために使用します。例えば、ユーザーアカウントを削除する時に使用されます。
    PATCH:リソースの一部を更新するために使用します。PUT が全体を更新するのに対して、PATCH は部分的な更新に適しています。

  2. リクエストURL:リクエスト対象のリソースを指定します(例:/index.html)

  3. HTTPバージョン:使用する HTTP のバージョンを指定します(例:HTTP/1.1)
    例:GET /index.html

ヘッダ

ヘッダはリクエストに関する追加情報を提供するための部分です。各ヘッダはキーと値のペアで表され、リクエストに関する様々な情報を含みます。

Host:リクエスト対象のサーバーのホスト名
User-Agent:リクエストを送信しているクライアントの情報
Content-Type:送信するデータのタイプ
例:
Host: www.example.com
User-Agent: Mozilla/5.0
Content-Type: application/json

メッセージボディ

メッセージボディはリクエストの内容そのもので、主に POST や PUT リクエストで使用されます。例えば、フォームのデータや JSON データなどが含まれます。
例:

 {
     "username": "example",
     "password": "password123"
 }

HTTPレスポンスとは

ウェブサーバーがウェブブラウザなどのクライアントからの HTTP リクエストに対して送信するメッセージです。リクエストに対する結果やデータをクライアントに返します。
HTTPレスポンスはステータスライン、ヘッダ、メッセージボディの 3 つの要素から構成されています。

ステータスライン

ステータスラインはレスポンスの最初の行で、以下の 3 つの部分から成ります:

  1. HTTP バージョン:使用している HTTP のバージョンを指定します(例:HTTP/1.1)
  2. ステータスコード:リクエストの処理結果を示す 3 桁の数字
    HTTP ステータスコードは、サーバーがクライアントのリクエストをどのように処理したかを示す 3 桁の数字です。ステータスコードにはいくつかのカテゴリがあります。

200 OK:リクエストが成功し、正常に処理されました。通常、GET リクエストのレスポンスとして使用されます。
201 Created:リクエストが成功し、新しいリソースが作成されました。通常、POST リクエストのレスポンスとして使用されます。
204 No Content:リクエストは成功しましたが、返すべきコンテンツがありません。通常、リソースの削除や更新に使用されます。
301 Moved Permanently:リクエストしたリソースが恒久的に新しい URL に移動しました。クライアントは新しい URL に自動的にリダイレクトされます。
400 Bad Request:リクエストが不正であり、サーバーが処理できません。クライアント側のエラーです。
401 Unauthorized:認証が必要であり、クライアントは認証情報を提供する必要があります。
403 Forbidden:リクエストは理解されましたが、サーバーはそれを拒否しています。認証してもアクセスが許可されない場合に使用されます。
404 Not Found:リクエストしたリソースが見つかりませんでした。存在しない URL にアクセスした場合に使用されます。
500 Internal Server Error:サーバー内部でエラーが発生し、リクエストを処理できません。サーバー側のエラーです。
3. ステータスの理由句:ステータスコードを説明する短いテキスト
例:HTTP/1.1 200 OK

ヘッダ

ヘッダはレスポンスに関する追加情報を提供するための部分です。各ヘッダはキーと値のペアで表され、レスポンスに関する様々な情報を含みます。

Content-Type:レスポンスのデータの種類を示します(例:Content-Type: text/html)
Content-Length:レスポンスボディの長さを示します(例:Content-Length: 1234)
Set-Cookie:クッキーを設定するためのヘッダ(例:Set-Cookie: sessionId=abc123; Path=/;)
例:
Content-Type: text/html
Content-Length: 1234
Set-Cookie: sessionId=abc123; Path=/

メッセージボディ

メッセージボディはレスポンスの内容そのもので、クライアントに返すデータが含まれます。例えば、HTML ページや画像、JSON データなどが含まれます。

例:

<html>
     <head><title>Example Page</title></head>
     <body><h1>Hello, world!</h1></body>
</html>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0