読書会でまとめたものになります

Chapter3 HTTPでやりとりする仕組み(9〜12)

#09 HTTP/2での改良点

 
HTTP/2はストリームの多重化の他に以下の改良点がある。
 
##バイナリ形式の利用
HTTP/1.1 以前・・・HTTPリクエストやHTTPレスポンスのやり取りがテキスト形式
HTTP/2.0 以降・・・HTTPリクエストやHTTPレスポンスのやり取りがバイナリ形式
バイナリ形式・・・コンピューターがわかるデータの形式
→変換にかかる時間とWebブラウザ、Webサーバーの負担が減った。
 
##へッダーの圧縮
HTTP/2.0 以降・・・ヘッダー情報も圧縮することが可能
また、HTTPリクエストやHTTPレスポンスのやり取りで重複するデータの差分だけを送るHPACKと呼ばれる圧縮方式を利用できることも可能
 
##サーバープッシュ
通常はWebブラウザからHTTPリクエストに応じて、Webサーバーが必要なコンテンツを転送するが、HTTP/2.0 ではHTTPリクエストの情報を元にWebサーバー側で必要なファイルを判断して、WebブラウザからHTTPリクエストなしに、事前にWebサーバーから転送する。
 
 
#10 HTTPSの仕組み
HTTPSは、HTTP over SSL/TLSの略
通信において、暗号化方式であるSSL(Secure Sockets Layer)、TLS(Transport Layer Security)を利用する
 
##安全性を確保する仕組み
・盗聴防止
万が一傍受されても内容を解読させないためにデータを暗号化して送る
 
・改ざん防止
ネットバイキングにおいて振込先情報が書き換えられてしますと行ったデータの改ざん対策として「メッセージダイジェスト」が利用される。
データ送受信時にハッシュ値を比較して改ざんを検知できます。
 
・なりすまし防止(Webサイト運用元の確認)
Webサーバーに「SSL サーバー証明書」と呼ばれる電子証明書を配置しておき、
接続じに検証することにより、Webサイトを運営する会社の身元を確認できる。
 
 
#11 HTTPSのやり取り
##SSL/TLSハンドシェイク
TCPコネクションが確率された後に通信を行う前に大きく4つのフェーズのやり取りを行う必要がある。
1 暗号化方式の決定
暗号化方式の決定の他に、HTTPSで利用されるSSL、あるいはTLSのバージョンや改ざん防止で利用されるメッセージダイジェストの方式も決定します。
 
2 通信相手の証明
このフェーズではWebブラウザが通信しているWebサーバーが正しい相手なのかどうかSSLサーバー証明書により確認する。正しいWebサーバーであることを確認できなかった場合は、Webブラウザ上に警告が出る。
 
3 鍵の交換
鍵はデータを転送する際の暗号化、および暗号化されたデータを複合する際に利用する。
 
4 暗号化方式の確認
実際に利用する暗号化方式の最終確認を行う。
 
 
#12 ステートフルとステートレス
##ステートフル
→状態を保持する
##ステートレス
→状態を保持しない
Webシステムで利用されるHTTPでは、多くの処理を素早く処理するためにも、状態を保持することなく要求された内容を応答するだけのステートレスな設計が適している。
##HTTPの弱点
Webが進化するにつれて、HTTPがステートレスでは困ることが増えてきた。
 
担当:らうみー