LoginSignup
0
0

More than 3 years have passed since last update.

HTTP編 1

Posted at

HTTPの重要性

HTTPはRFC2616で規定されたプロトコルです。
RFC2616で規定されているバージョン1.1で、これが現時点での最新バージョンです。
現在のWebではこのバージョンが最も使われています。

HTTPはHTMLやXMLなどのハイパーテキストだけでなく、静止画、音声、動画、JavaScriptプログラム、PDFや各種オフィスドキュメントファイルなど、コンピュータで扱えるデータであればなんでも転送できます。

HTTPはWebの基盤となるプロトコルです。

TCP/IPとはなにか

HTTPはTCP/IPを基盤にしています。

TCP/IPはインターネットの基盤を構成する重要なネットワークプロトコルです。
TCP...Transmission Control Protocol
IP... Internet Protocol

インターネットのネットワークプロトコル

インターネットのネットワークプロトコルは階層型になっています。以下図
https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_78136_4cb6315c-2d72-2be5-a860-e364b771e28e.png

ネットワークインターフェース層

ここは、物理的なケーブルやネットワークアダプタに相当する部分

インターネット層

ここが担当するのは、ネットワークでデータを実際にやりとりする部分で、TCP/IPではIPがこれに当たる。
IPではデータの基本的な通信単位をパケットと呼ぶ。指定したIPアドレスを送り先として、パケット単位でデータをやり取りして通信する。
IPは自分のネットワークインターフェースでデータを送り出すことだけを保証していて、送り出したデータが多数ルータを経由して最終的な送り先まで届くかどうかは保証していません。

トランスポート層

ここは、IPが保証しなかったデータの転送を保証するのがトランスポート層の役割です。
TCP/IPではTCPがこれに相当する。

TCPでは接続先の相手に対してコネクションを張ります。このコネクションを使ってデータの抜け漏れをチェックし、データの到達を保証します。
TCPで接続したコネクションで転送するデータが、どのアプリケーションにわたるのかを決定するのが、ポート番号です。
ポート番号は1~65535の数値で、HTTPは80。

アプリケーション層

ここでは、具体的なインターネットアプリケーション、たとえばメールやDNS、そしてHTTPを実現する層です。
TCPでプログラムを作る時はソケットと呼ばれるライブラリをつかうのが一般的だが、

ほとんどのプログラミング言語にはHTTPを実装したライブラリが標準でついているため、ソケットを使ってHTTPを独自に実装することはほとんどない。

しかしWebサービスやWebAPIを開発するにあたっては、フレームワークの細かな挙動や設定、パラメータなどがプロトコルレベルでどのように動作するのかを把握しておく必要がある。

0
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
0
0