エイチティーティーピー
HTTP(HyperText Transfer Protocol)とは、ハイパーテキストを送受信するため、WWWサーバーで使われる通信規約である。
WebブラウザとWebサーバ間で、HTMLファイルなどの文書や動画などのファイルを転送するために用いられている。
HTTPはその名の通り、HTMLやXMLなどのハイパーテキストを送受信とすることを目的としているが、画像や音声、動画などのバイナリデータも送受信することが出来る。
HTTPはリクエスト-レスポンス型のプロトコルである。クライアントがサーバーにリクエストを送信すると、サーバーがクライアントにレスポンスを返す。詳しくはHTTPステータスコードの一覧を参照のこと。
HTTPはTCP/IPプロトコル群の一つである。HTTP/1.0はRFC 1945、HTTP/1.1はRFC 7230・7231・7232・7233・7234・7235として、HTTP/2はRFC 7540として、IETFにより規格化されている。 HTTP/3はQUICのワーキンググループにて仕様策定が進んでいる。
HTTPのデフォルトのポート番号は80番で、HTTP/1.0・HTTP/1.1・HTTP/2はTCPを用いている。HTTP/3はUDPで、その上にQUICという仕組みを使ってデータのやりとりを用いている。
HTTPにTLS(SSLの後継)によるデータの暗号化機能を付与した物がHTTPS(Hypertext Transfer Protocol Secure)である。
URLは以下のような構造になっている(必要な部分のみ抜粋)。
HTTPと対応する「http」「https」は特別スキームであるため、HTTPのURLは「https://」から始まるのである。
具体的には、以下のようなやりとりがなされることになる。今回は、localhost(自分のコンピュータ)に立っているHTTPサーバに対して、/hogehoge.txtを要求した場合の流れを説明する。
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
なお、リクエストは空行で終わる点に注意せよ。で、この意味は以下の通りである。
基本的にHTTPはステートレスであり、そのままでは会員のログインなどの管理ができない。これらを実現するためにCookieという技術を用いる。あと、大昔はこんな感じで1コネクション1リクエスト1レスポンスのやりとりをやっていたが、今はKeep-Aliveなどにより、1コネクションで複数リクエスト複数レスポンス捌けるようになっている。
掲示板
27ななしのよっしん
2022/01/22(土) 19:58:31 ID: z3lZnsRvl0
>>25
そういう意味じゃない
28ななしのよっしん
2022/01/23(日) 01:31:10 ID: x199YOw35H
>>26
現段階で既にいろいろと最適化されてるので乾いたぞうきんを絞って雫を絞り出すような感じになるのよ
とはいえ大規模なWebサイトになればなるほどその雫の量がバカにならない
逆に言えばそこらの大したことないごく普通のWebサイトじゃ強烈な恩恵はないし
何ならただのHTTP1.1で必要十分だったりするが
29ななしのよっしん
2022/04/17(日) 18:19:31 ID: Mh78hK2OO8
キャンパスlanのWebアクセスでTCPの80と443しか穴あけされて無かったりする場合、疎通不可になったりするからQUIC採用してるWebサービスでも従来のWebアクセスと併存させてたりするのよね。
急上昇ワード改
最終更新:2022/05/21(土) 12:00
最終更新:2022/05/21(土) 12:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。