HTTP[HTTPS]の基礎(1)

  • ポート番号

HTTP … 80

HTTPS … 443

  • やりとりについて

参考:ブラウザとHTTPサーバのやり取り(その1) ネットワーク入門

表示したいページのすべてのアイテム(テキスト、画像)に対して以下を繰り返す。

[1] クライアントからサーバへGET要求

・GET/ index.html HTTP/1.0 ※GETはHTTPのコマンド

MIMEヘッダ

これらをまとめたパケットのコマンドを送る

[2]サーバからクライアントへHTTP応答

・HTTP/1.0 200 OK  ※200は OKという意味の応答

MIMEヘッダ / データ本文

これらをまとめたパケットで応答する。

 

HTTP 1.0ではコマンドと応答のやり取りの度にTCPコネクションの確立・切断を行っていた。HTTP1.1からは1つのTCPコネクションで複数のコマンドと応答のやりとりができるようになった。

Multipurpose Internet Mail Extensions。

ざっくり言うとWeb専用ファイル拡張子。"Content-Type="の後に指定される。

"Multipart" / "Mixed"の形で指定される。

メールやインターネットはテキストしかやりとりできないので、MIMEを使用して無理やり文字データとして転送する。

Webサーバとブラウザ間で状態を管理するためのプロトコル

セッション管理・ユーザ識別ができる。

ブラウザはサーバから送られてきたCookieをテキストファイルとして保存しておく。

サーバから要求があればそのテキストファイルを返信する。

Cookieの取得は同一ドメインのサーバのみで他のサーバからは読み出せない。

具体的には、domain属性とpath属性を接続するURLと比較し、条件を満たす時のみサーバに送信される。

 

「Webからの脅威」を攻略せよ――セッション管理編 - 第1回 まずは「クッキー」を理解すべし:ITpro

  • secure属性、expires属性

Cookieに関する属性。

Cookieではユーザ認証を行えるため、Cookieを盗まれるとなりすましなどが危険。

サーバ側では盗まれたものかどうかの判定はできない。

そこで、Cookieにsecure属性やexpire属性を設定する。

- secure属性

 HTTPSの通信時のみCookieを送信する。盗聴対策。

- expires属性

 Cookieの有効期限を指定する。

 この指定がないときは、ブラウザが終了するとCookieは消される。

 これが指定されているとブラウザの起動に関係なく有効期限までマシンにCookieが保存される事になり、危険性が高い。