9月17日(木)2コマ目
今日、やったこと
HTTP
今日のホワイトボード
HTTPは
Webアクセスの際に使うプロトコル。
クライアント<=>サーバーでのリクエスト、レスポンスのフォーマットやリクエスト時に使うメソッド、レスポンスに使う処理結果通知(ステータスコード)などを定義している。
![]() |
| 図 HTTPでやり取りされる内容 |
CurlでGETコマンド送信
通常はWebブラウザにURLを入力すると、WebブラウザがサーバーにGETコマンドを送信するが、curlコマンドでGETコマンドをサーバーへ送信し、やり取りを確認する。
GETコマンドはリンククリック等でホームページを表示させる際に使われる。
![]() |
| 図 curlでGETコマンド送信 |
演習では
Webサーバー(172.16.8.10)上のgettestフォルダにあるindex.htmlをGETコマンドでリクエスト。
![]() |
| 図 curl http://172.16.8.10/gettest/index.html |
クライアント=>サーバー
HTTPのフォーマットに従ってリクエストライン、ヘッダーフィールドが作成される。
メッセージボディはパラメータがないためなし。
リクエストラインからGETコマンドでリクエストしていることがわかる。
GET /gettest/index.html HTTP/1.1
サーバー=>クライアント
HTTPのフォーマットに従って、ステータスライン、ヘッダーフィールド、区切りの空白行、メッセージボディが送信される。
ステータスラインのステータスコードから正常終了だとわかる。
HTTP/1.1 200 OK
メッセージボディにはリクエストしたindex.htmlが入っている。
curlでPOSTコマンド送信
POSTコマンドは、ボタンクリックでWebブラウザにて入力した内容をサーバーに送信するときに使われる。
![]() |
| 図 curlでPOSTコマンド送信 |
演習では
Webサーバー(172.16.8.10)上のformtestフォルダにあるshowall.phpをPOSTコマンドでリクエスト。そのさい、パラメータも送信。なお、showall.phpは- PHP言語で書かれたプログラム
- リクエスト時に送信されるパラメータを取得し、表形式で出力する
です。
- PHP言語で書かれたプログラム
- リクエスト時に送信されるパラメータを取得し、表形式で出力する
クライアント=>サーバー
リクエストラインにはPOSTコマンド
POST /formtest/showall.php HTTP/1.1
メッセージボディ部の
12 out of 12 Bytes
から12バイト送信したことがわかる。
この12バイトは一緒に送信したパラメータ「val1=abcdefg」。
サーバー=>クライアント
GETコマンドと同じようにステータスラインから正常終了だとわかる。
HTTP/1.1 200 OK
メッセージボディにはshowall.phpが処理した結果出力されるHTMLが入っている。
今どきのWebアクセスは暗号化通信
HTTPではなく、暗号化されたHTTPSを使うのが一般的。
HTTPSは
- HTTP+SSL(Secure Socket Layer)
- 暗号化担当はSSL
- パケット中のHTTP部(TCPヘッダより後)を暗号化
です。
![]() |
| 図 HTTPS |






コメント