2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

HTTPリクエスト、レスポンスにはどんな情報が入っているのか

Posted at

HTTPで送られるリクエスト、レスポンスの内容について理解したいと思い、勉強してみた。

HTTPメッセージ

HTTP通信では、HTTPメッセージを使用して通信を行う。

HTTPメッセージの構成

複数行のデータで構成される。

  • 開始行(リクエスト行, ステータス行)
    • リクエストのときは「リクエスト行」
    • レスポンスのときは「ステータス行」
  • メッセージヘッダ
  • (空行)
  • メッセージボディ

HTTPリクエスト

「Webブラウザ→Webサーバ」に送られるHTTPメッセージ。

  • リクエスト行
    • 「Webサーバに対して依頼する処理」に関する情報が記述されている
      • HTTPメソッド(GET/POST...など)
      • パス名(リクエスト対象のデータ)
      • HTTPのバージョン(HTTP/1.1...など)
  • メッセージヘッダ(HTTPヘッダ)
    • Webブラウザの種類や言語などの情報を伝える
      • User-Agentはここに含まれる
  • 空白行
    • メッセージヘッダの終わりを示す
  • メッセージボディ
    • Webサーバにデータを送るために使われる

HTTPレスポンス

「Webサーバ→Webブラウザ」に送られるHTTPメッセージ。
HTTPリクエストに対する応答。

  • ステータス行
    • Webサーバでの処理の結果
      • HTTPバージョン
      • HTTPステータスコード
        • 200:正常、403:アクセス権限なし、404:ページがない、500:プログラムでエラー、503:サービス利用不可
  • メッセージヘッダ(HTTPヘッダ)
    • 返信するデータのタイプや、データの圧縮方法など
    • Content-type: text/html
    • char-set=UTF-8
  • 空白行
    • メッセージヘッダの終わりを示す
  • メッセージボディ
    • HTMLや画像などのデータを格納する場所

HTTPリクエストをより詳しく...

HTTPメソッド

だいたい利用するのはGETPOST

GETメソッド

主に、HTMLファイルなどコンテンツを取得したい場合に使われる。
リクエスト時に送るデータは、URLの後ろに付与して送る。

POSTメソッド

データをWebサーバに対して送信する場合に使われる。
リクエスト時に送るデータは、HTTPリクエスト内のメッセージボディに含めて送る。

HTTPレスポンスをより詳しく...

ステータスコード

Webサーバ内での処理結果として、HTTPレスポンスのステータス行にはステータスコードが含まれている。

  • 主なステータスコード
    • 200:正常
    • 403:アクセス権限なし
    • 404:ページがない
    • 500:プログラムでエラー
    • 503:サービス利用不可

メッセージヘッダ

HTTPリクエスト、HTTPレスポンスそれぞれに存在している。
HTTPメッセージに関する詳細な情報が含まれているため、主要なものは認識しておく。

User-Agent

HTTPリクエストに含まれる情報。
クライアントのWebブラウザやOSの情報など、どんな環境からアクセスされたかがわかる。

Content-Type

**送信するコンテンツの種類(MIMEタイプ)**を指定する項目。

HTTPS(HTTP over SSL/TLS)

**SSL(Secure Sockets Layer)TLS(Transport Layer Security)**を利用した、暗号化された安全な通信方式。
具体的に、どのような安全性があるのか。

盗聴防止(暗号化通信)

データを暗号化して通信するため、通信内容を傍受して盗聴することを防ぐ。

改ざん防止

メッセージダイジェストを利用することで、データが改ざんされることを防いでいる。
メッセージダイジェストとは、あるデータから一意の短いデータ(ハッシュ値)を取り出す計算のことで、
データを送受信する際にこのハッシュ値を比較することで、改ざんを検知している。

なりすまし防止(Webサイト運用元の確認)

WebサーバにSSLサーバ証明書を配置し、接続時に検証することで、Webサイト運営者の身元を確認できる。
SSLサーバ証明書は認証局による認証作業が行われているため、安全性が担保できる。

あとがき

いくつかまた調べたいことがでてきた。

  • SSLサーバ証明書の配置方法
  • セッションとCookie
  • curlコマンド
    • HTTPリクエストを送ったり、データ転送を行うことができるコマンド...らしい
  • MIMEタイプの1つ「multipart/form-data」
    • 形式がよくわからない

リンク

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?