まさ@ブログ書き込み中

まさ@ブログ書き込み中

まさの旅、英語、プログラミング、プライベートについて、色々記録しています。

HTTPを今までより掘り下げよう①【Webを支える技術 第三部 前半】

 

琉球大学の図書館のコモンスペースでヘッドホンをつけてMacをタタタターン!ってやっているのは、そう、この僕です。

 

まさです。

 

本日2回目の投稿いきます。

 

今回はHTTPのお話。

 

 

『Web技術入門』のHTTPの項を死ぬほど圧縮してまとめる

以前の課題書『プロになるためのWeb技術入門』を読んだ際にもHTTPについての話は出てきていました。

 

masa-world.hateblo.jp

 

『Webを支える技術』の第三部はHTTPについてであり、基礎的な内容に関しては大いに『(前略)Web技術入門』とかぶるので、上記記事の内容をギュッとまとめて箇条書きにします。

 

上の記事では、HTTPは

  • 通信プロトコル
  • HTTPリクエスト・HTTPレスポンスをする
  • HTTPリクエストは具体的にはリクエスト・ラインとメッセージ・ヘッダがある
  • HTTPレスポンスは具体的にはステータス・ラインとメッセージ・ヘッダとメッセージ・ボディがある
  • TCP/IPというプロトコルでパケット単位に分割されて送られる
  • ( ^ω^ )

 

というわけですね。

 

さて、本書の説明に入りましょう。(残り時間20分)

 

 

TCP/IP

本書では、もっと詳しくTCP/IPパケット通信について説明されています。

 

インターネットのネットワークプロトコル階層型になっています。

さぼさんは OSI参照モデル - その1 というより詳しいサイトを教えてくださったことがありましたが、この本ではもう少しざっくり以下にまとめられています。

 

下から順に

  • ネットワークインターフェース層
  • インターネット層
  • トランスポート層
  • アプリケーション層

だそうな。

 

爆速で説明していきます。

 

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

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

 

インターネット層

ネットワークでデータを実際にやりとりする部分。TCP/IPではIPが相当。

パケットに分割して指定したIPアドレスへ送る。といっても、送り出すだけ。最終的に届くかどうかは保証しない。

 

トランスポート層

IPが保証しなかったデータ転送を保証する層。TCP/IPではTCPが担当。ポート番号でTCPが転送したデータがどのアプリケーションに渡るかを決定される。

 

アプリケーション層

具体的なインターネットアプリケーション、例えばメールやDNS、HTTPを実現する層。接続、送信、受信、切断などの基本的な機能を備えているソケットというライブラリ(API)を使うのが一般的。

 

 

HTTPメソッド

秒速で億を稼ぎたい僕が秒速でHTTPの8つのメソッドを紹介します。

その8つとは

  • GET:リソースの取得
  • POST:子リソースの作成、リソースへのデータの追加、そのほかの処理
  • PUT:リソースの更新、リソースの作成
  • DELETE:リソースの削除
  • HEAD:リソースのヘッダ(メタデータ)の取得
  • OPTIONS:リソースがサポートしているメソッドの取得
  • TRACE:自分宛にリクエストメッセージを返す(ループバック)試験
  • CONNECT:プロキシ動作のトンネル接続への変更

 

特にGET・POST・PUT・DELETEは「CRUD(Create, Read, Update, Delete」という性質を満たすため、代表的なメソッドと言える。

 

 

本書ではさらに深い内容について説明されていますが、一旦ここで終わっておきます。

 

 

よし、30分。