HTTP 単語


ニコニコ動画でHTTPの動画を見に行く

エイチティーティーピー

2.3千文字の記事
これはリビジョン 3015178 の記事です。
内容が古い・もしくは誤っている可能性があります。
最新版をみる

HTTP(HyperText Transfer Protocol)とは、ハイパーテキストを送受信するため、WWWサーバーで使われる通信規約である。

WebブラウザとWebサーバ間で、HTMLファイルなどの文書や動画などのファイルを転送するために用いられている。

概要

HTTPはハイパーテキスト転送プロトコルとも呼ばれる。

HTTPはその名の通り、HTMLやXMLなどのハイパーテキストを送受信とすることを目的としているが、画像や音声、動画などのバイナリデータも送受信することが出来る。

HTTPはリクエスト-レスポンス型のプロトコルである。クライアントがサーバーにリクエストを送信すると、サーバーがクライアントにレスポンスを返す。詳しくはHTTPステータスコードの一覧を参照のこと。

HTTPはTCP/IPプロトコル群の一つである。HTTP/1.0はRFC 1945、HTTP/1.1はRFC 7230・7231・7232・7233・7234・7235として、HTTP/2はRFC 7540として、IETFにより規格化されている。 HTTP/3はQUICのワーキンググループにて仕様策定が進んでいる。

HTTPのデフォルトのポート番号は80番で、HTTP/1.0・HTTP/1.1・HTTP/2はTCPを用いている。HTTP/3はUDPで、その上にQUICという仕組みを使ってデータのやりとりを用いている。

HTTPにTLS(SSLの後継)によるデータの暗号化機能を付与した物がHTTPS(Hypertext Transfer Protocol Secure)である。

なんで「https://」からHTTPのURLは始まるのか

URLは以下のような構造になっている(必要な部分のみ抜粋)。

  • URL = {以下のいずれか}[?クエリー][#フラグメント]
    • file以外の特別スキーム:スキーム相対特別URL
    • 特別スキームでないスキーム:相対URL
    • file:スキーム相対file URL
  • 特別スキーム = ftp もしくは file もしくは gopher もしくは http もしくは https もしくは ws もしくは wss
  • スキーム相対特別URL = //ホスト[:ポート][パス絶対URL]

HTTPと対応する「http」「https」は特別スキームであるため、HTTPのURLは「https://」から始まるのである。

具体的なやりとり

具体的には、以下のようなやりとりがなされることになる。今回は、localhost(自分のコンピュータ)に立っているHTTPサーバに対して、/hogehoge.txtを要求した場合の流れを説明する。

リクエスト

GET /hogehoge.txt HTTP/1.1
Host: localhost
Connection: close

レスポンス

HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 8
Connection: close

Fugafuga

なお、リクエストは空行で終わる点に注意せよ。で、この意味は以下の通りである。

  • リクエストの1行目で「何のメソッドで」「何を」「どのHTTPのバージョンで」リクエストするかを規定する。今回は「GETメソッドで」「/hogehoge.txtを」「HTTP/1.1で」リクエストしている。
    • GETメソッドとは、リソースの取得に用いるためのメソッドである。通常、安全かつ冪等である。他にもPOSTとかHEADとかPUTとかDELETEとか色々ある
  • リクエストの2行目でHostヘッダーを送信している。HTTP/1.1以降では、このHostヘッダーは必須である。これにより、マルチドメインのサーバであっても、各ドメインに応じたコンテンツを提供できる。今回は、localhostというホスト名を指定している。
  • リクエストの3行目のConnectionヘッダーは、わかりやすく言えば、この後コネクションをどうしたいかの意思表示である。closeと指定しているので、このリクエストが終わったら、コネクションは終了する。
  • リクエストの4行目は空行で、これはリクエストヘッダーの終わりを意味する。GETメソッドではリクエストペイロードを持たないため、これがリクエストの終わりである。
  • レスポンスの1行目は「どのHTTPバージョンで」返答するかと、「ステータスはどのようになったか」である。今回は「HTTP/1.1で」「リクエストが正常に受理され、正常に完了した(200 OK)」という意味になる
  • レスポンスの2行目はContent-Typeヘッダーを返している。これは「このコンテンツがどのような形式か」を意味し、text/plainはプレーンテキストを意味する
  • レスポンスの3行目のContent-Lengthヘッダーは、レスポンス本文の長さである。8ということは8バイトである
  • レスポンスの4行目のConnectionヘッダーは、リクエストと同じ意味である。おそらくレスポンスの後にTCPコネクションの終了を行うだろう
  • レスポンスの5行目の空行を持って、レスポンスヘッダーが終わる。その後はレスポンス本文である

基本的にHTTPはステートレスであり、そのままでは会員のログインなどの管理ができない。これらを実現するためにCookieという技術を用いる。あと、大昔はこんな感じで1コネクション1リクエスト1レスポンスのやりとりをやっていたが、今はKeep-Aliveなどにより、1コネクションで複数リクエスト複数レスポンス捌けるようになっている。

関連動画

関連項目

  • HTTPステータスコードの一覧
  • ttp://
  • World Wide Web
  • URL
  • インターネット
関連記事

親記事

子記事

兄弟記事

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2025/12/27(土) 16:00

ほめられた記事

最終更新:2025/12/27(土) 16:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP