gotagota日記

「面白きことは良きことなり」

HTTPについて

HTTPについてインターンのプラクティスで学習したのでそのメモ。

HTTPとは

HyperText Transfer Protocol の略で、Webサーバと、ブラウザ間で、ウェブページを送受信するためのプロトコル(=通信規約)のこと。テキスト形式のメッセージを交換することにより実現されている。
送られてきた結果であるHTML文書や、JPEGといった画像などのデータを整形して表示するのがブラウザの仕事。

requestメッセージ構文例

GET / HTTP/1.1 <!-- リクエスト行 -->
Accept: image/gif, image/jpeg, */* <!-- ヘッダstart -->
Accept-Language: ja
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (Compatible; MSIE 6.0; Windows NT 5.1;)
Host: www.xxx.zzz
Connection: Keep-Alive <!-- ヘッダend -->
# 空行
<!-- メッセージボディ (POSTメソッドなどで使用) -->

一行目は、リクエストラインと呼ばれ、
メソッド リクエストURI HTTPバージョン
という風に3つの部分に分けられる。

二行目以降は、リクエストヘッダと呼ばれ、
ヘッダ名: ヘッダ値
というかたちで情報が記載されている。

responseメッセージ構文例

HTTP/1.1 200 OK <!-- レスポンス行 -->
Date: Sun, 11 Jan 2004 16:06:23 GMT <!-- ヘッダ start -->
Server: Apache/1.3.22 (Unix) (Red-Hat/Linux)
Last-Modified: Sun, 07 Dec 2003 12:34:18 GMT
ETag: "1dba6-131b-3fd31e4a"
Accept-Ranges: bytes
Content-Length: 4891
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html <!-- ヘッダ end -->
# 空行
<html>        <!-- メッセージボディ start -->
  :
</html> <!-- メッセージボディ end -->

一行目は、ステータタスラインと呼ばれ、
HTTP/バージョン ステータス番号 補足メッセージ
という風に3つの部分に分けられる。

二行目以降は、レスポンスヘッダと呼ばれ、リクエストヘッダ同様に、
ヘッダ名: ヘッダ値
といった具合に記載される。

参考URL

http://www.tohoho-web.com/ex/http.htm http://www.atmarkit.co.jp/fsecurity/index/index_httpbasic.html https://www.nic.ad.jp/ja/basics/terms/http.html