Hypertext Transfer Protocol.我々がブラウザでよく見る、ハイパーメディアを転送する通信プロトコルですね。World Wide Webでのデータ通信の基盤です。

一般的には、TCPで接続を確立させた後、このプロトコルでメッセージのやり取りをする。

GET、POST、などのリクエストメッセージをサーバーに送り、そのリクエストに応じて、サーバーがデータを処理して、レスポンスを送ってくる。我々はそれをブラウザで見やすい形で見ている訳だ。

例えばファイアーフォックスでは、三→その他のツール→ウェブ開発ツール→↑↓ネットワーク、でこの通信の生データを見ることが出来る。

例えば、このMonoBook のメインページにアクセスするときは、まずクライアントから、以下のデータを送っている。(一部プライバシー保護のため、* で伏字にしています。)

GET /wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8 HTTP/3
Host: monobook.org
User-Agent: Mozilla/5.0 (Windows NT **.0; Win64; x64; rv:1--**) Gecko/*****101 Firefox/***.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-US;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate, br, zstd
Sec-GPC: 1
Alt-Used: monobook.org
Connection: keep-alive
Cookie: cf_clearance=*_*ovw
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Priority: u=0, i

するとmonobook.org のサーバから以下の応答が返ってくる。

HTTP/3 200 
server: cloudflare
date: Tue, 10 Mar 2026 **:**:** GMT
content-type: text/html; charset=UTF-8
server-timing: cfCacheStatus;desc="BYPASS"
server-timing: cfEdge;dur=*,cfOrigin;dur=***
server-timing: cfExtPri
priority: u=*,i
x-content-type-options: nosniff
content-language: ja
x-frame-options: DENY
vary: Accept-Encoding, Cookie
expires: Thu, 01 Jan 1970 00:00:00 GMT
cache-control: no-cache, no-store, max-age=*, must-revalidate
x-request-id: **********
content-encoding: zstd
cf-cache-status: BYPASS
nel: {"report_to":"cf-nel","success_fraction":*.0,"max_age":******}
report-to: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=**********"}]}
cf-ray: **********-NRT
alt-svc: h3=":***"; ma=****

<!DOCTYPE html>
<html class="*****" lang="ja" dir="***">
<head>

…(中略)…

</script>
</body>
</html>

えー、以上です。