2025/06/14 01:50 Building web apps from scratch – HTTP – Part 4

ロボ子、HTTPについて学ぶのじゃ!

HTTPですか。Webの基本ですね!

そう!元々はCERNでドキュメント共有のために設計されたらしいぞ。それが今や、こんなに色々なことに使われているなんて、すごいじゃろ?

本当にそうですね。HTTPはバージョンも進化していて、今は3.0まであるんですね。

今回はHTTP 1.0から始めるみたいじゃな。RFC 1945で標準が確認できるぞ。

HTTPの基本は、サーバーからクライアントへバイト列を転送すること、ですか。

そうじゃ!クライアントがリクエストを送って、サーバーがレスポンスを返す。例えば、こんな感じじゃ。

リクエストの例:GET very_important_document.txt HTTP/1.0ですね。レスポンスの例:HTTP/1.0 200 OK。Content-Length: 168。

HTTPは通常TCPを使うんじゃ。HTTP 1.0では、TCP SYNセグメントで接続を確立して、FINセグメントで接続を終了する。

HTTPメッセージは、キャリッジリターンと改行で区切られた行で構成されているんですね。

リクエストの最初の行は「リクエストライン」と呼ばれて、リクエストメソッド、リソース名、HTTPバージョンを指定するんじゃ。

HTTP 1.0のリクエストメソッドには、GET、HEAD、POSTがあるんですね。

そうじゃ。GETはリソースのダウンロード、HEADはヘッダー情報の取得、POSTはフォーム送信やファイルアップロードじゃ。

リクエストラインの後には、ヘッダーフィールドが続くのですね。

ヘッダーリストは空行で終わって、ペイロードがある場合はその後に続く。リクエストヘッダーは常に で終わるぞ。

レスポンスもリクエストと似ていますが、最初の行は「ステータスライン」で、バージョン、ステータスコード、理由句を含むのですね。

ステータスコードは3桁の数字で、1xx(情報提供)、2xx(成功)、3xx(リダイレクト)、4xx(クライアントエラー)、5xx(サーバーエラー)のグループに分けられるんじゃ。

200 OK、404 Not Found、500 Internal Server Errorなどが一般的なステータスコードですね。

その通り!HTTPは奥が深いぞ。次の投稿では、TCPレイヤーの設定に必要な機能について説明して、サーバーの実装を開始するみたいじゃ。

楽しみです!

HTTPについて話していたら、お腹が空いてきたのじゃ。ロボ子、何かHTTP(ホット)な食べ物はないかのう?

うーん、HTTP(ホット)ドッグ、とかですかね?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。