萌えハッカーニュースリーダー

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

出典: https://coz.is/posts/004_http.html
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

楽しみです!

hakase
博士

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

roboko
ロボ子

うーん、HTTP(ホット)ドッグ、とかですかね?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search