Webを支える技術 ch7 HTTPメソッド
6.1 HTTPの重要性
コンピューターで扱えるデータならなんでも転送できるから最強
6.2 TCP/IP
- IPは、データを送り出すことだけ保証
- TCPは、最終地点まで転送されることを保証
6.3 HTTPのバージョン
- 0.9 - GETのみ
- 1.0 - ヘッダ追加・GET以外のメソッド追加
- 1.1 - 持続的接続・チャンク転送・acceptヘッダ
チャンク転送 引用:https://www.playframework.com/documentation/ja/2.0.x/JavaStream
今のところ、ストリーミングを始める前にコンテンツの長さを計算することができるため、うまくファイルの内容をストリーミングすることができていました。しかし、コンテンツのサイズが事前にわからないような動的に生成されるコンテンツをストリーミングする場合はどうでしょうか? このような種類のレスポンスを返すためには、 チャンク転送エンコーディング を利用します。
長所:動的に生成されるコンテンツ(ライブ配信とか?)は、いくつかのチャンクにわけて転送するようにできる
短所:web ブラウザがコンテンツサイズを知らないため、ダウンロードプログレスバーを正しく表示できない
acceptヘッダ
引用:https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Accept
クライアントが理解できるコンテンツタイプを MIME タイプで伝えます。
※ MIME:文書、ファイル、またはバイト列の性質や形式を示す標準
6.6 HTTPメッセージ
リクエスト
GET /test HTTP/1.1 <- リクエストライン Host: example.jp <- ヘッダ
リクエストライン:メソッド+リクエストURI+プロトコルバージョン
レスポンス
HTTP/1.1 200 OK <-ステータスライン Content-Type: application/xhtml+xml; charset=utf-8
HTTPはステートレス
HTTPメソッド
メソッド
- GET:リソースの取得
- POST:追加など
- PUT:作成・更新
- DELETE:削除
——————>ここからあまり理解できていない
- HEAD:ヘッダの取得
- OPTIONS:サポートしてるメソッドの取得
- TRACE:試験用
- CONNECT:トンネル接続への変更
//request OPTIONS /list HTTP/1.1 Host: example.jp //response HTTP/1.1 200OK Allow: GET,HEAD,POST
CRUD(データ操作の基本)
- Create:作成(POST / PUT)
- Read:読み込み(GET)
- Update:更新(PUT)
- Delete:削除(DELETE)