HTTPとは
Hyper Text Transfer Protocolの略で、HTMLで書かれた文書などの情報をやり取りする時に使われる通信規則(プロトコル)のこと
プロトコルとは
コンピュータでデータをやりとりするために定められた手順や規約、信号の電気的規則、通信における送受信の手順などを定めた規格のこと
HTTPリクエストとは
ウェブブラウザがウェブサーバーに対して情報を要求するためのメッセージです。たとえば、ウェブサイトを開くとき、ブラウザはそのサイトのサーバーに HTTP リクエストを送信します。
HTTPリクエストはリクエストライン、ヘッダ、メッセージボディの 3 つの要素から構成されています。
リクエストライン
リクエストラインはリクエストの最初の行で、以下の 3 つの部分から成ります
-
HTTPメソッド:リクエストの種類を指定します
HTTP メソッドはリクエストの種類を指定し、サーバーがリクエストをどのように処理するかを決定します。主なメソッドには以下のものがあります:
GET:サーバーからリソースを取得するために使用します。例えば、ウェブページを表示する時に使用されます。
POST:サーバーにデータを送信して新しいリソースを作成するために使用します。例えば、フォームに入力されたデータを送信する時に使用されます。
PUT:サーバー上の既存のリソースを更新するために使用します。例えば、既存のユーザーデータを更新する時に使用されます。
DELETE:サーバー上のリソースを削除するために使用します。例えば、ユーザーアカウントを削除する時に使用されます。
PATCH:リソースの一部を更新するために使用します。PUT が全体を更新するのに対して、PATCH は部分的な更新に適しています。 -
リクエストURL:リクエスト対象のリソースを指定します(例:/index.html)
-
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 つの部分から成ります:
- HTTP バージョン:使用している HTTP のバージョンを指定します(例:HTTP/1.1)
- ステータスコード:リクエストの処理結果を示す 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>