ぽかぽかコード日和

とっても暑い夏の日にプログラミングはじめました☀️

【Web】プロトコルとHTTP/HTTPS

プロトコルとは

プロトコルとは、あらかじめ決められたやりとりの手順。情報規約。
「手順」を表す言葉で、ネットワークに接続された機器同士が通信するための共通ルールや規格のこと。

TCP /IP とは、複数のプロトコルの集まりのこと。
異なるOSなどの機器間でも接続するためのプロトコルで、 HTTPもアプリケーション層の一つとして含まれている。

☀︎TCP/IPの階層構造☀︎
アプリケーション層(レイヤー4)・・・HTTP、SMTPFTPなど
トランスポート層 (レイヤー3)・・・TCPUDP
インターネット層(レイヤー2)・・・IP、ICMPなど
ネットワークインターフェイス層(レイヤー1) ・・・イーサネットWi-Fiなど
☀︎環境や用途に応じて各層のプロトコルを使い分けるイメージ

従来のTCP/IPに代わる、QUICというUDPを基盤にした新しい通信プロトコルの採用が広がっている。

HTTPとは

HTTPとは、Webを利用して情報をやりとりするデータ送受信用のプロトコル
WebブラウザとWebサーバーの間での通信に使われている。
Hypertext Transfer Protocolの略。

  • 3ウェイハンドシェイクとは、TCPコネクションを確立させるためのやりとり。HTTPの通信が可能になる。
    3ウェイハンドシェイク

HTTPSとは

HTTPSとは、HTTPとSSL/TLSを組み合わせた通信の総称。
通信路を暗号化して、HTTPよりセキュリティを高めた方法。
Hypertext Transfer Protocol Secureの略。

  • HTTPと基本的な構造は同じ。
  • HTTPからHTTPSへ移行しつつある。(SSL化)
  • HTTPSが使用されている場合は、Webブラウザのアドレスバーに鍵のアイコンが表示される。
  • SSL/TLSとは、暗号化方式のプロトコル

    • 暗号化通信により盗聴防止
    • メッセージダイジェストによる改ざん防止
    • SSLサーバー証明書によりなりすまし防止
      の3つの仕組みでWebサイトの安全性を確保している。
  • SSL/TLSハンドシェイクとは、WebブラウザとWebサーバーの間でHTTPSの通信を開始するためのやりとり。TCPコネクションが確立された後に行われる。

HTTPメッセージとは

HTTPメッセージとは、
Webブラウザ(クライエント)とWebサーバーの間で情報をやりとりするために使うデータ形式のこと。

WebブラウザからWebサーバーへの要求を送るHTTPリクエス
HTTPリクエストを処理し、その結果をWebブラウザに返すHTTPレスポンス
の2種類に分けられる。

  • HTTPでは基本的に、1つのHTTPリクエストに対して、1つのHTTPレスポンスを返す。
  • HTTPリクエストとHTTPレスポンスのやり取りを繰り返し行うことで、Webサイトを閲覧できる。