記事の紹介

この記事ではリクエストとレスポンスに対して扱います。

HTTPとは

ブラウザWebサーバは、実際には「GET/index.php/1.1」や「HTTP/1.1 200 OK」などといった文字列を送り合っています。ブラウザとWebサーバ間の通信で、どの様なやり取りをするかはHTTPというルール(プロトコル)で決められています。リクエストレスポンスもこのHTTPに従って行われるため、「HTTPリクエスト」「HTTPレスポンス」と呼ばれます。以下はこのホームページ(https://dripcoke.com/)のリクエストレスポンスヘッダです。

リクエスト(リクエストライン: GET /index.php HTTP/1.1)

  • :authority: dripcoke.com
  • :method: GET
  • :path: /
  • :scheme: https
  • accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
  • accept-encoding: gzip, deflate, br
  • accept-language: ja,en-US;q=0.9,en;q=0.8
  • cache-control: max-age=0
  • cookie: __gads=Test; lang=ja
  • sec-fetch-mode: navigate
  • sec-fetch-site: none
  • sec-fetch-user: ?1
  • upgrade-insecure-requests: 1
  • user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36

レスポンス(ステータスライン : HTTP/1.1 200 OK)

  • content-encoding: gzip
  • content-type: text/html; charset=UTF-8
  • date: Fri, 25 Oct 2019 05:45:40 GMT
  • link: <https://dripcoke.com/wp-json/>; rel=”https://api.w.org/”, <https://wp.me/bmBRA>; rel=shortlink
  • server: nginx
  • status: 200
  • vary: Accept-Encoding

リクエストの中身

まずリクエストの右書かれてるリクエストラインに対して説明します。これは「どのリクエストするか?(リクエストの方法)」「何をリクエストするか(リクエストの対象)」「どのプロトコルを使うか?(使用するプロトコル)」という情報で構成されています。

GET /index.html HTTP/1.1

赤色の部分:リクエストの方法
黄色の部分:リクエストの対象
青色の部分:使用するプロトコル

こちらのリクエストに関しては後でフォームを扱う時に説明します。

レスポンスの中身

次に、レスポンスの右に書かれてるステータスラインというのは「リクエストを受けてWebサーバの動作した結果」が表示されます。

HTTP/1.1 200 OK

赤色の部分:使用したプロトコル
黄色の部分:動作結果

このステータスラインの「200」は「問題なくうまくいったよ」という事を示すコードです。これを(HTTP)ステータスコードといいます。横の「OK」は補足メッセージです。

これをHTTPのステータスコードが多くありますが、代表的な四つだけを紹介しようと思います。

ステータスコードと補足メッセージ 意味
200 OK リクエストに成功しました。
404 Not Found リクエストされた対象が見つかりません。
405 Method Not Allowed リクエスト対象が、使用したリクエストメソッドを許可していない。
500 Internal Server Error サーバ内部でエラーが発生した。

まず、今はそこまで内容に深く考える必要はありません。ただ、「Webサーバは、リクエストされた結果どうなったかをステータスコードという数値で返す」という事を覚えて置くだけで結構です。その後、注目して欲しいのが、ヘッダの2番目にある「Content-Type」の行です。Content-Typeヘッダと言われ、ボディ部が何のデータであるかを示します。簡単な例で調べて見ましょう。

  • HTMLをレスポンスする場合:Content-Type : text/html; charset-UTF-8(後ろのUTF-8はHTMLの文字コードとなります。)
  • JPEGをレスポンスする場合: Content-Type:image/jpeg;

入門JSP-Webの仕組み

Webの仕組み-(1)-Webページを公開するに当たって
・Webの仕組み-(2)-Webを支える通信の仕組み
Webの仕組み-(3)- Webアプリケーションの仕組み
Webの仕組み-(4)-開発の準備
Webの仕組み-(5)- 開発環境を体験する