見出し画像

WebサーバとHTTP通信

今日は”通信”をテーマにみていきましょう!

Webサーバとクラウド

Webサーバ=クライアントとHTTPによる通信を行うプログラムorコンピュータのこと.
クラウドコンピューティング(=コンピュータ資源をサービスの形で提供する)(AWSやGCPなど)が発達しており,物理的なWebサーバを意識しなくなってきている.

クライアント?HTTP?って人は↓
「普段の検索」っていきなりWEBサーバと通信してると思っているかもしれませんがコンピュータは人の言葉は理解できません.そのあたりも昨日の記事に書いています.

HTTP通信

・HTTP = Webサーバのプロコトル
・HTTP通信は必ずクライアント側のリクエストから開始.
・リクエストでは,メソッドと呼ばれるもので動作を指定.
・基本的なメソッドである「GET」と「POST」について紹介する.
HTTPSは暗号化することにより,HTTPのセキュアをより強化したもの

※セキュア=システムやネットワーク、データなどが安全な状態に保たれていること

GETメソッド

データの取得に用いられるメソッド

まずクライアント(ブラウザ)がWEBサーバに送るリクエスト↓

GET / index.html HTTP/1.1
Host: example.com
これは、example.comというホスト名のサーバに対し、GETメソッで/index.htmlというURLを要求していることを表します

これを受けてサーバは以下のようなレスポンスを返します↓

1. HTTP/1.1 200 OK
2. Content-Type: text/html
3. Content-Length: 25069
4. Date: Fri, 10 May 2013 06:17:55 GMT
5. 
6. (コンテンツ本体)
・先頭行の200=ステータスコードと呼ばれ,レスポンスの意味
 「200 OK」,「403 Forbidden」,「404 Not Found」など
・2行目Content-type: は送信したファイルの種類
・最後一行を空白をはさんで,ファイル本体が送信される.

POSTメソッド

データ送信に用いられるメソッド.
掲示板などの動的なコンテンツに書き込む際に用いられます.

まず,クライアントがWEBサーバに以下のようなリクエストを送ります.↓(この場合は実在しないため「404 Not Found」となる.)

POST /write.php HTTP/1.1
Host: example.com
Content-Length: 93

name=Fumi_note&text=%82%B1%82%F1%82%C9%82%BF%82%CD
・POSTの場合はレスポンスと同じように,最後の一行の空白を挟みデータを送信.
・データは「&」で区切られる.
・各データごとに「データ識別名=データ本体」という構造になっている.
・日本語などの送信できない文字は「%xx」(xx=16進数)という形式に変換が行われ送信.=URLエンコード
・サーバではデータを処理するプログラムがきどうし掲示板の更新処理など行った後にGET同様にレスポンスを返す.

実は,実際にブラウザがどんな通信をしているか見ることができます.

スクリーンショット 2020-02-12 18.52.33

Chrome上で「右クリック」→「検証」→「ネットワークタブ」を選択すると上の画像のように,Webページの通信の様子を見ることができます.
「更新」や「戻る」などの普段の通信を手を動かして確認してみてください!

通信の様子がリアルタイムでしかも時間ごとに見れるので結構面白いですよ!(意味は全然分かりませんが...笑)

この記事が気に入ったらサポートをしてみませんか?