見出し画像

Real World HTTP part1 技術メモ1

渋川 よしきさん著 Real World HTTP の読書メモ part1 です。

それぞれの章がとても深く、よく書かれている書籍なので数回に分けて雑多にメモを書き留めていきたいと思っています。

今回は「一章 HTTP/1.0の世界:基本となる4つの要素」についてまとめています。

語彙

RFC(Request For Comments)
IETF(Internet Engineering Task Force)が維持管理している、通信の相互接続性を維持するために共通化された仕様書。

ネットワークは国防予算で作られたため外部公開できず、「品質アップのために外部から意見を集める」という名目で仕様を公開することにした名残りで、こう呼ばれている。

W3C(World Wide Web Consortium)
HTMLの仕様策定、Server-Sent Events,  WebSocketのようにJavaScript APIを伴う通信プロトコルの多くを管理。XMLを中心に据えた技術を発展させたい。

WHATWG(Web Hypertext Application Technology Working Group)
Webを活発に発展させたいメンバーが集まり発足。
2019.06 HTMLとDOMに関わる仕様策定を行うことが発表された。

ブラウザベンダー共通の仕様書:MDN

HTTPのリリースされた年代

1990年:HTTP/0.9
1996年:HTTP/1.0
1997年:HTTP/1.1
2015年:HTTP/2

■ HTTP/0.9 の機能
・ページをサーバーに要求して内容を受け取るだけ。(まさにHyper Text Transfer Protocol)
・1つのドキュメントを送る機能しかなかった
・ダウンロードするコンテンツのフォーマットをサーバーから伝える手段がなかった
・クライアント側から検索のリクエストを送る以外のリクエストを送信できなかった
・新しい文章を送信したり、更新したり、削除することはできなかった

クライアント→サーバーに送るヘッダー

User-Agent
クライアントが自分のアプリケーション名を入れるところ

Referer
サーバー側で参考にするための追加情報。クライアントがリクエストを送るときに見ていたページのURLを送る。

Authorization
特別なクライアントにだけ通信を許可する際、認証情報をサーバーに伝える。

サーバー→クライアントに送るヘッダー

Content-Type
ファイルの種類を指定。(MIMEタイプは電子メールのために作られた識別子)

Content-Length
ボディのサイズ

Content-Encoding
圧縮形式

Date
ドキュメントの日時

MIMEタイプ:1992年のRFC1341が初出。
Content-Type:1988年のRFC1049

Content-Typeとセキュリティ

X-Content-Type-Options: nosniff
→IEが中身を見てファイルの種類を推測(Content Sniffing)しようとするが、意図せずブラウザが実行してしまうのを防ぐための対応。(現在の主流)

ステータスコード

301/308 Moved Permanently
ページが完全に移動した時。Googleが推奨するページ移動を伝える手段。

302/307 Found, Temporary Redirect
一時的な移動。モバイル専用サイトにジャンプしたり、メンテナンスページを表示したりする。

303 See Other
リクエストされたページには返すべきコンテンツが存在しない、あるいは本来返すべきページが別にある場合、そちらにジャンプさせるために使用する。例えば、ログインページを使ってログインした後に、元のページに飛ぶ場合に使う。

書籍

Real World HTTP 第2版 ―歴史とコードに学ぶインターネットとウェブ

この記事が気に入ったらサポートをしてみませんか?