KATUBLO | エンジニアの日常BLOG

プログラミング、数学、旅行などを中心に役立つ情報をお届け

2019年07月17日

【ネットワーク初心者】HTTPの基礎・基本知識を理解する

こんにちは。KATUOです。

今回の記事では「HTTPの基本知識」について解説していこうと思います。

 

プロトコルの周辺知識

代表的なプロトコル一覧

プロトコルの種類 プロトコルの役割
HTTP PCとWebサーバーとのデータのやり取りに
関するプロトコル
FTP PCからサーバーにファイルを転送する際に使用するプロトコル
SSL 暗号化通信に関するプロトコル
POP3, SMTP POP3はメールサーバーからのメールの受信、SMTPは自分のメールサーバーから相手のメールサーバーに送信を行う為のプロトコル
DHCP ネットワーク内のPCや機器へのプライベートIPアドレスの割り当てを行う為のプロトコル
NTP PCとインターネット上に存在するNTPサーバーと時刻を合わせるために使うプロトコル
TCP 信頼性・確実性を重視したデータ送受信を行う為のプロトコル。HTTP、HTTPS、POP3、SMTP、FTPなどと組み合わされて使用されます。ホームページ閲覧、メール送受信、ファイル転送..etc
UDP 転送速度・リアルタイム性を重視したデータ送受信を行う為のプロトコル。使用用途はIP電話、ビデオ会議、チャット、動画ストリーミング..etc
IP データ・パケットを指定された場所まで届ける為のプロトコル
IPsec データ・パケットを暗号化して指定された場所まで届ける為のプロトコル
Ethernet LANによる通信を行う為のプロトコル
PPPoE EthernetでPPPプロトコルを利用して通信する為のプロトコル。

以上が代表的なプロトコルの一覧表です。HTTPプロトコルはこれら代表的なプロトコルの中の一部ということです。

 

ブラウザのURLから様々なプロトコルを利用できる!

URLの部分に注目してください。先頭の文字列がfileになっていますね。これはfileプロトコルを使って画像データにアクセスしているんです。つまりブラウザのURLにてhttp以外のプロトコルを使ってデータにアクセスしたりすることができるんです!知っていたよ!という方がいたらそれまでですが、プロトコルの概念みたいのが少しづつわかってくるのではないでしょうか?今回ですとfileプロトコルをつかって画像アクセスしました。

 

HTTPプロトコルについて

そもそもHTTPプロトコルとは?

Hypertext Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル、略称 HTTP)とは、HTMLなどのコンテンツの送受信に用いられる通信プロトコルである。主としてWorld Wide Webにおいて、WebブラウザとWebサーバとの間での転送に用いられる。日本標準仕様書ではハイパテキスト転送プロトコルとも呼ばれる。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

https://ja.wikipedia.org/wiki/Hypertext_Transfer_Protocol

 

上に書いてある通り、webブラウザとwebサーバー間の通信の決まりごとを指しているんです。

HTTPプロトコルのURLの形式

HTTP + ユーザー名 (省略可能) + Webサーバー + ファイル名

↑の形式で書かれます。ここの部分に関してはちょっと詳しく後程触れます。

 

URIとMethod

HTTPプロトコルのリクエストメッセージは「何を」「どうする」べきなのかを含む場所があります。それらを紹介していきます。

URIについて

URI:Universal Resource Identifier の略。HTTPが送るメッセージの「何を」の部分が書かれています。ちなみにURIとURLの違いですが、以下のサイトにわかりやすくまとめられていましたので紹介しておきます。

 

結論から言うと、URIとURLは同じものではありません。「URI」のほうが広い概念で、「URL」はURIの部分集合です。

https://webtan.impress.co.jp/e/2010/03/09/7539

出典:「URLとURIは何が違うの? どちらが正しい呼び方?」

 

URIは名前または場所を識別する書き方の大元のことを指します。「http」なんかはURIの書き方で決められたものなのでURIといったりします。

Methodについて

Method:HTTPの送るメッセージの「どうする」の部分が含まれる。GETやPOSTといったエンジニアなら一度は聞いたことがあるこの用語はMethodに該当します。GETですと取得するという意味合いになりますね。

 

HTTPのリクエスト・レスポンス メッセージ

リクエスト・メッセージの構成

・リクエストライン
・メッセージヘッダー
・メッセージボディー

大きく分けて↑の3要素で構成されています。

レスポンス・メッセージの構成

・ステーテスライン
・ヘッダーフィールド
・メッセージボディー

こちらも同様大きく分けて↑の3要素で構成されています。

レスポンスのステータスコード

↑はwikipediaのトップページを開いた際に送信されるHTTPリクエスト、レスポンスの一部がまとめられたものです。全てのサイトで「右クリック」→「inspect」→「network」で開いているページに対するHTTPリクエスト・レスポンスを確認することができます。レスポンスの中にstatus code(ステータスコード)と呼ばれるものが入っているのですが、これはx00番台毎に意味を持ちます。

 

ステータス番号 意味
100番台 処理の経過情報に関する系
200番台 正常終了
300番台 別のアクションを必要とする系
400番台 クライアント側のエラー
500番台 サーバーサイド側のエラー

 

 

最後まで読んで頂き、ありがとうございました。
SNS等でのシェアが頂ければ幸いです!

プロフィール

@KATUO

現在都内私立大学に通う大学4年生。大学では電気電子工学を専攻。大学2年の夏頃に、プログラマーの長期インターン募集の広告が目に止まり、独学でプログラミングの学習を開始。現在は「ToC向け大規模サービスを運営するメガベンチャー」と「AIスタートアップ」でインターンで修行中。2020年4月からwebエンジニアとして社会人生活スタート。

広告

特集記事