HTTP(HyperText Transfer Protocol)とは、ハイパーテキストを
WebブラウザとWebサーバ
概要
HTTPはその
HTTPはリクエスト-レスポンス
HTTPはTCP/IPプロトコル
HTTP/0.9 | HTTP/1.0 | HTTP/1.1 | HTTP/2 | HTTP/3 | |
---|---|---|---|---|---|
1991 |
|||||
1996 |
RFC1945 | ||||
1997 |
RFC2068 | ||||
1999 |
RFC2616 | ||||
2014 |
RFC7230 RFC7231 RFC7232 RFC7233 RFC7234 RFC7235 |
RFC7540 | |||
2022 |
RFC9110 RFC9111 RFC9112 |
RFC9110 RFC9111 RFC9113 |
RFC9110 RFC9111 RFC9114 |
ただし、HTTP/0.9は
HTTPのデフォルトのポート
HTTPにTLS(SSLの
なんで「https://」からHTTPのURLは始 まるのか
URLは
- URL = {
以下 のいずれか}[?クエリー][#フラグメント] 特別 スキーム = ftp もしくは file もしくは gopher もしくは http もしくは https もしくは ws もしくは wss- スキーム
相対 特別 URL = //ホスト[:ポート][パス絶対 URL]
HTTPと
具体 的 なやりとり
GET /hogehoge.txt HTTP/1.1
Host: localhost
Connection: close
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 8
Connection: close
Fugafuga
なお、リクエストは
- リクエストの1
行 目 で「何 のメソッドで」「何 を」「どのHTTPのバージョンで」リクエストするかを規定 する。今回 は「GETメソッドで」「/hogehoge.txtを」「HTTP/1.1で」リクエストしている。 - リクエストの2
行 目 でHostヘッダーを送信 している。HTTP/1.1以降 では、このHostヘッダーは必須 である。これにより、マルチドメインのサーバであっても、各 ドメインに応 じたコンテンツを提供 できる。今回 は、localhostというホスト名 を指 定 している。 - リクエストの3
行 目 のConnectionヘッダーは、わかりやすく言 えば、この後 コネクションをどうしたいかの意思 表示 である。closeと指 定 しているので、このリクエストが終 わったら、コネクションは終了 する。 - リクエストの4
行 目 は空 行 で、これはリクエストヘッダーの終 わりを意味 する。GETメソッドではリクエストペイロードを持 たないため、これがリクエストの終 わりである。 - レスポンスの1
行 目 は「どのHTTPバージョンで」返答 するかと、「ステータスはどのようになったか」である。今回 は「HTTP/1.1で」「リクエストが正常 に受理 され、正常 に完 了 した(200 OK)」という意味 になる - レスポンスの2
行 目 はContent-Typeヘッダーを返 している。これは「このコンテンツがどのような形式 か」を意味 し、text/plainはプレーンテキストを意味 する - レスポンスの3
行 目 のContent-Lengthヘッダーは、レスポンス本文 の長 さである。8ということは8バイトである - レスポンスの4
行 目 のConnectionヘッダーは、リクエストと同 じ意味 である。おそらくレスポンスの後 にTCPコネクションの終了 を行 うだろう - レスポンスの5
行 目 の空 行 を持 って、レスポンスヘッダーが終 わる。その後 はレスポンス本文 である
関連 動画
関連 項目
親 記事
子 記事
兄弟 記事
- 9
- 0pt