About Cacher
Web App
Download
Sign In
Sign Up
menu
Cacher is the code snippet organizer for pro developers
We empower you and your team to get more done, faster
Learn More
cnt0705
9/4/2017 - 10:10 AM
share
Share
add_circle_outline
Save
Webを支える技術
Webを支える技術
book_web_technology.md
content_copy
file_download
Rendered
Source
Webを支える技術
第6章 HTTPの基本
HTTP
HTTPはTCP/IPをベースとしたプロトコル
ハイパーテキスト以外にも静止画、音声、動画、JS、PDFなどコンピュータで扱えるデータであればなんでも転送できる
ネットワークプロトコルは階層型となっており、HTTPはアプリケーション層で使われる
クライアントとサーバ
HTTPではクライアントが出したリクエストをサーバで処理してレスポンスを返す
クライアントで行われること
リクエストメッセージの構築
リクエストメッセージの送信
レスポンスが返るまで待機
レスポンスメッセージの受信
レスポンスメッセージの解析
必要があれば(CSSや画像などのリソース取得)再度リクエスト送信
クライアントの目的を達成するための処理(レンダリングなど)
サーバで行われること
リクエストの待機
リクエストの受信
リクエストの解析
アプリケーションプログラムへ処理を委譲
アプリケーションプログラムから結果を取得
レスポンスの構築
レスポンスの送信
HTTPメッセージ
リクエストメッセージ
1行目:リクエストライン
メソッド、リクエストURI、プロトコルバージョンからなる
リクエストURIはパス以降の文字列
/test?query=hoge
か、絶対URI
http://example.jp/test
となる
2行目以降:ヘッダ
メッセージのメタデータ
名前: 値
という形式である
例)リクエスト先のポート番号はHostヘッダ
Host: example.jp:8080
で指定する
ヘッダ以降:ボディ
レスポンスメッセージ
1行目:ステータスライン
プロトコルバージョン、ステータスコード、テキストフレーズからなる
ステータスコードはリクエストの結果を数値で表現したもの
2行目以降:ヘッダ
メッセージのメタデータ
メディアタイプや文字エンコーディング方式などが指定される
ヘッダ以降:ボディ
HTML
ステートレス性
ステートレスとは「サーバがクライアントのアプリケーション状態を保存しない」制約のこと(※ハンバーガー屋の例)
ステートフルなやりとりではサーバがクライアントの注文状況を覚えている(注文の差分だけ伝えればよい)ので、簡潔
ステートレスなやりとりではクライアントが毎回すべての注文状況を伝える必要があるので、冗長
clear