1
2

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 3 years have passed since last update.

HTTPの基本~まとめ~

Posted at

はじめに

「WEBアプリケーションの脆弱性診断」を行う際に、WEBの主要な通信プロトコルである**『HTTP』**の理解は必須になります。自己学習を通して学んだことを復習もかねてまとめてみました。

HTTPとは

ネットワークを使った通信を行うためには、お互いが決まった手順データの形式を守る必要があります。

そのあらかじめ、決められた**『約束事』のことを『プロトコル』**と呼びます。

WEBで主に使われているプロトコルは**『HTTP』**です。

TCP/IPとHTTPの関係

インターネットを含めた一般的に使われているネットワークは**『TCP/IP』**というプロトコルで動いています。

💻HTTPはそのうちの1つです!!

コンピューターネットワーク機器がお互いに通信するためのプロトコルには、様々なものがあります。
『ケーブルの規格』や『IPアドレスの指定方法』。。。

これらのインターネットに関連するプロトコルを集めたものを
**『TCP/IP』または『TCP/IP プロトコル・スイート』**と呼びます。
👇
※インターネットの関する様々なプロトコルの総称がTCP/IP!

階層

TCP/IPの重要な考え方の1つに**『階層』**というものがあります。

TCP/IPでは**『アプリケーション層』『トランスポート層』『ネットワーク層』『リンク層』**の4階層に分かれています。

TCP/IPで通信するとき、階層の順番を通って相手と通信を行います。

送信側👩は『アプリケーション層』から下っていき
受信側💻は『アプリケーション層』に上がっていく
👇
【イメージ図】
Qiita2.jpg
それぞれの階層を渡っていくときには、必ず階層ごとに「その階層」に必要な**『ヘッダー』**と呼ばれる情報をくっつけていく!

受信側ではそれぞれの階層を渡っていくときには、逆に必ずその階層ごとに使用したヘッダーを外していく!

このように情報を包み込むことを**『カプセル化』**といいます。

HTTPと関係深いプロトコル IP/TCP/DNS?

TCP/IPの中で、HTTPと関係が深いプロトコルが3つあります。

:black_small_square:配送を担当するIP

IPは『ネットワーク層』
IP の役割は、個々のパケットを相手先まで届けることです。
※『IPアドレス』の役割は重要

:black_small_square:信頼性を担当するTCP

TCPは『トランスポート層』
TCPは大きなデータを送信しやすいように細かく分解し、確実に相手に届いたかどうかを確認する役割を担っています。

:black_small_square:名前解決を担当するDNS

DNSはHTTPと同じ『アプリケーション層』
主に**『ホスト名』や『ドメイン名』と『IPアドレスの名前解決』を提供します。
※名前解決とは、人間が覚えやすい
「www.example.com」というドメイン名から通信に必要な「93.184.216.34」**というIPアドレスを検索することを指します。

シンプルなプロトコル≪HTTP≫

HTTPはTCP/IPの他のプロトコルと同様に**『クライアント』と『サーバー間』**で通信を行います。

※HTTPでは必ず片方が『クライアント』もう一方が『サーバー』の役割を担う!

クライアント👩から**『リクエスト』が送信され
その結果をサーバー💻が
『レスポンス』**として返します。

ここでやり取りしているデータは、『HTTP メッセージ』と呼ばれていて
リクエスト側のHTTPメッセージを『リクエストメッセージ』

レスポンス側のHTTPメッセージを**『レスポンスメッセージ』**と呼びます。

HTTPは状態を保持しないプロトコル!?

HTTPは状態を保持しないステートレスなプロトコルです。

HTTPでは、プロトコル自身にリクエストとレスポンスのやり取りの間に**『ステート(状態)』**の管理が存在しません。

HTTPというプロトコルのレベルでは、以前に送ったリクエストや、送られたレスポンスについて一切記憶していません!

なので。。。

上記の内容を保持したいという要望に応えるために**『Cookie』**という技術が導入されています。

Cookieとは

Cookieとは**サイトを訪問した『ブラウザのデータを記録しておくための仕組み』**のことです。

詳しく説明すると。。。

:black_small_square:Webサイトにアクセスした時に、WebサーバーからCookieがブラウザに送られ、ブラウザに保存される

:black_small_square:次回同じwebサイトにアクセスした時、ブラウザ上のCookieがWebサーバーに送られ、サーバー側に保存されているユーザー情報とCookieが紐づきます。
👆
この仕組みにより、再度訪問した際に同一ブラウザであることが判定されます:flag_white:

そのためCookieを活用してセッション管理を行うことで、**『状態を管理することが可能』**になります!

参考文献

書籍:Webセキュリティ担当者のための脆弱性診断スタートガイド
   上野宣が教える新しい情報漏えいを防ぐ技術 第2版
著者:上野 宣

まとめ

今回は「脆弱性診断」を行う上で必要なHTTPに関すること簡潔にまとめてみました。
HTTPに関する知識も不十分だったため、今回の学習で基本は抑えられたと思います。

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?