Top / HTTP
HTML convert time: 0.058 sec.

HTTP

Last-modified: 2014-09-29 (月) 00:06:08

HTTP/HTTPS(HTTP over SSL/TSL)のプロトコルシーケンスの流れ

HTTPのGETリクエスト

C                                       S
| TCPセッション確立 (www.exapmple.com)   |
|-------------------------------------->|
| GET / HTTP/1.1                        |
| Host: www.example.com                 |
| User-Agent: XXX                       |
|-------------------------------------->|
| HTTP/1.1 200 OK                       |
|<--------------------------------------|

HTTPSのGETリクエスト(SSLハンドシェイク)

C                                       S
| TCPセッション確立 (www.exapmple.com)   |
|-------------------------------------->|
|                                       |
|             ClientHello               |
|-------------------------------------->|
|                                       |
|             SeverHello                |
|<--------------------------------------|
|             Certificate               |
|<--------------------------------------|
|           ServerHelloDone             |
|<--------------------------------------|
|                                       |
|           ClientKeyExchange           |
|-------------------------------------->|
|           ClientCipherSpec            |
|-------------------------------------->|
|              Finished                 |
|-------------------------------------->|
|                                       |
|           ChangeCipherSpec            |
|<--------------------------------------|
|              Finished                 |
|<--------------------------------------|
|                                       |
| GET https://www.example.com HTTP/1.1  |
| Host: www.example.com                 |
| User-Agent: XXX                       |
|-------------------------------------->|
| HTTP/1.1 200 OK                       |
|<--------------------------------------|

HTTPプロキシ経由でGETリクエスト

C                                       P                                       S
| TCPセッション確立 (proxyserver:8080)   |                                       |
|-------------------------------------->|                                       |
| GET http://www.example.com HTTP/1.1   |                                       |
| Host: www.example.com                 |                                       |
| User-Agent: XXX                       |                                       |
|-------------------------------------->|                                       |
|                                       | TCPセッション確立 (proxyserver:8080)   |
|                                       |-------------------------------------->|
|                                       | GET / HTTP/1.1                        |
|                                       | Host: www.example.com                 |
|                                       | User-Agent: XXX                       |
|                                       |-------------------------------------->|
|                                       | HTTP/1.1 200 OK                       |
|                                       |<--------------------------------------|
| HTTP/1.1 200 OK                       |                                       |
|<--------------------------------------|                                       |

HTTPSプロキシ経由でGETリクエスト(少し違うかも。。。)

C                                       P                                       S
| TCPセッション確立 (proxyserver:8080)   |                                       |
|-------------------------------------->|                                       |
| CONNECT www.example.com:443 HTTP/1.1  |                                       |
| Host: proxyserver                     |                                       |
|-------------------------------------->|                                       |
|                                       |TCPセッション確立 (www.example.com:443) |
|                                       |-------------------------------------->|
| HTTP/1.1 200 OK                       |                                       |
|<--------------------------------------|                                       |
|                                       |                                       |
|<--------------------------------------+-------------------------------------->|
|<------------------------------SSLハンドシェイク------------------------------>|
|<--------------------------------------+-------------------------------------->|
|                                       |                                       |
| GET https://www.example.com HTTP/1.1  |                                       |
| Host: www.example.com                 |                                       |
|---------------------------------------+-------------------------------------->|
| HTTP/1.1 200 OK                       |                                       |
|<--------------------------------------+---------------------------------------|

SSLのパケット構成

IPヘッダTCPヘッダSSLレコード
タイプ(1byte)バージョン(2byte)データ長(2byte)データ(可変長)
20:暗号方式採用
21:アラート
22:ハンドシェイク
23:アプリケーションデータ
0300:SSL3.0
0301:TLS1.0

HTTPSのパケットシーケンス

その他