Hypertext Transfer Protocol

Phân tán cộng đồng ハイパーメディア tình báo システム の ため の アプリケーション・プロトコル
(HTTPから転 đưa )

Hypertext Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル,HTTP) はアプリ gian コネクション thượng の リクエスト/レスポンス hình ・ステートレス・メッセージ chỉ hướngThông tín プロトコルである[1].

Hypertext Transfer Protocol
Thông tín プロトコル
Mục đích ハイパーテキストなど の 転 đưa
Khai phát giả
Dẫn vào 1991 năm(33 năm trước )(1991)
Đẻ ra trước HTTP/2,HTTP/3,WebDAV
OSI giai tầng アプリケーション tầng
ポート 80
RFC
  • Chung:RFC9110,RFC9111
  • HTTP/1.1:RFC9112
  • HTTP/2:RFC9113
  • HTTP/3:RFC9114

Điểm chính

Biên tập

TCPQUICはアプリケーション gian の コネクション hình thông tín を cung cấp する. HTTPはこ の コネクション thượng を, リソース muốn vọng と phản đáp が, メッセージ単 vị で, 1 lặp lại の クライアントリクエスト&サーバーレスポンスという hình で thông tín される, と định めたプロトコルである[1].

HTTP の phát minh により,インターネットThượng で の リソース công khai とアクセスが dễ dàng になった. クライアントがサーバーとコネクションを xác lập し1つ の HTTPメッセージを thư いて đưa るだけで, サーバー thượng の リソースがHTTPメッセージとして quy ってくる. ゆえにHTTPで công khai されるあらゆるリソースにHTTPという単 một の thủ pháp でアクセスできるようになった.

HTTPを khai phát した lý do でありかつ hiện tại も quảng く lợi dụng される sử dụng はWorld Wide Webである.WebサーバWebブラウザはHTTPで chủ に thông tín しており, ブラウザから の HTTPメッセージに ứng đáp してサーバーがHTMLテキストやJavaScriptコードを đưa り phản し, これをブラウザで tỏ vẻ することでウェブが thành lập している.

またHTTPはメッセージ hình thức を định める. Cơ bản な khảo え phương は単 thuần で “Gì を” “どうして” dục しい の かを vân える. Lệ えばリクエストメッセージGET /apple.jpgは “apple.jpg bức họa を, tay に nhập れたい” を ý vị する.URLが “Gì を” に, メソッドが “どうして” に đương たる.

World Wide WebにおけるWebページなど のリソースは,Uniform Resource Identifierによって chỉ định される. HTTP を sử dụng してリソースにアクセスするときは, http: が lúc đầu についた URL を sử dụng する. Hạ にURL の lệ を cử げる.

http:// example.co.jp/~test/samples/index.html

Lúc ban đầu の HTTP/0.9 ではURLを chỉ định してコンテントをダウンロードする の み の giản 単なやりとりだったが, HTTP/1.0 で cải tiến された.

  • リクエスト の セマンティクスを chỉ định する, dạng 々なリクエストメソッドが thêm vào された. POSTを sử って, アップロード ( クライアントからサーバへ の データ の 転 đưa ) が khả năng になった.
  • NNTPSMTPの ような các loại ヘッダが định nghĩa され,HTTP cookieなど の lợi dụng が khả năng になった.

HTTP/1.1 では số nhiều データを hiệu suất よく転 đưa するため の cầm 続 tiếp 続や,プロキシの lợi dụng なども tưởng định した sĩ dạng になった. さらにHTTP/2HTTP/3が sách định された. Hiện tại ではHTTPセマンティクスと các バージョン の tay 続きが chia lìa して định nghĩa されている (# quy cáchを tham chiếu ).

こ の ほか の điểm を cái điều thư きで kỳ す.

Lịch sử

Biên tập

イギリスの vật lý học giảティム・バーナーズ=リー1990 nămMạt,ロバート・カイリューと cộng に sơ の WebブラウザとWebサーバを tác thành した. ブラウザには thông tín をするため の プロトコルが tất yếu だった の で, hai người はHTTP の lúc ban đầu kỳ の バージョンを thiết kế した.

Tới nay インターネット の đại bộ phận をHTTP thông tín が chiếm めるようになり,1998 nămにはインターネット thượng の thông tín の 75%がHTTPによるも の になった.

Lúc ban đầu kỳ の HTTP/0.9 の sĩ dạng thư は giấy に in ấn すれば1 cái で tế むような phi thường に giản tố なドキュメントだったが, 2 độ の バージョンアップを kinh たHTTP/1.1 の sĩ dạng thư は thật に176ページ gần く の phân lượng に bành れあがった.

1991 nămに lúc ban đầu にドキュメント hóa されたバージョン[2].メソッドは GET しかなかった. レスポンスは単 thuần にドキュメント の nội dung を phản してコネクションを cắt đứt するだけで, レスポンスコード の quy định もない. Hạ nhớ は, HTTP/0.9 の リクエスト の lệ.

GET /index.html

1996 năm5 nguyệtRFC1945として phát biểu された. Sĩ dạng が RFC で tráp われるようになった. メソッドに POST など GET bên ngoài の も の が tăng えた. レスポンスはヘッダーがつくようになり, ステータスコードを hàm めるようになった. HTTP/0.9 と khác nhau するため, リクエストプロトコルにバージョンを hàm めることになった.

HTTP/1.0 の リクエスト
GET/index.htmlHTTP/1.0

1997 năm1 nguyệtRFC2068として sơ bản が phát biểu された. そ の sau, 3 hồi đặt lại され, hiện tại はセマンティクス・キャッシングを trừ く bộ phận がRFC9112で quy định されている.

Danh trước ベースバーチャルホストの ため, Hostヘッダーフィールド の quy định が thêm vào された.

HTTP/1.1 の リクエスト
GET/index.htmlHTTP/1.1
Host:foo.example

HTTP/2 の mục tiêu はHTTP/1.1 の トランザクション・セマンティクスと の hoàn toàn な phía sau trao đổi tính を duy trì したまま không giống kỳ な tiếp 続 のNhiều trọng hóa,ヘッダÁp súc,リクエストとレスポンス のパイプライン hóaを thật hiện することである.Googleによって lập ち thượng げられ[3],Google の ブラウザーであるChromeだけではなく, hắn にも,Opera,Firefox,Amazon Silkなどが đối ứng しているHTTP trao đổi の プロトコルSPDYの người khí が cao まっていることに đối ứng するために khai phát された[4].

HTTP-over-QUIC ( hq ) としてIETFが khai phát していた tân たなThông tín プロトコルが, HTTP/3へと sửa tên される.[5] IETFが sách định を tiến めているQUICトランスポート tầngにおけるプロトコル の tên であり, アプリケーション tầng プロトコルであるHTTP-over-QUICと の khác nhau を minh xác にするため, こ の ような tên 変 càng に đến った.[6]

HTTP/2と so べ, nhiều trọng hóa するストリーム の lấy り tráp いが hạ vị tầng の QUICへ di chuyển したこと[7],ヘッドオブラインブロッキング(Tiếng Anh bản)を lảng tránh するため の ヘッダ áp súc の 変 càng ( HTTP/3 dùng にQPACKが khai phát されている )[8]など の sai biệt がある.

Động tác

Biên tập

Thông tín の bắt đầu

Biên tập

Hắn の プロトコル cùng dạng, クライアント sườn とサーバ sườn では dịch cắt が đại きく dị なる. HTTP thông tín を bắt đầu できる の はクライアント sườn の みである.

クライアント sườn がサーバにリクエストを đưa り, サーバがクライアントにレスポンスを phản す の が nhất も điển hình なHTTP の やりとりである.

Tiếp 続

Biên tập

システム gian でメッセージをやりとりするには tiếp 続を xác lập させる tất yếu がある. HTTP/0.9~HTTP/1.1およびHTTP/2ではTCPを sử dụng する.

HTTP/0.9ではクライアント の リクエストごとにTCP tiếp 続を xác lập させる tất yếu があった. これは lúc ấy の Webサイトがシンプルなテキストベースであることが nhiều かったためである. Năm gần đây ではJavaScriptやアニメーション bức họa など, đa số の オブジェクトが chôn め込まれたWebサイトが giống nhau となってきており, これら の オブジェクトを lấy được するたびにTCP tiếp 続を xác lập する の はサーバやネットワークに đại きな gánh nặng を cường いるため, 1 hồi の TCP tiếp 続で, số nhiều の HTTPリクエスト・レスポンスをやり lấy りする cầm 続 tiếp 続がHTTP/1.0 の 拡 trương として dẫn vào された. そ の sau, HTTP/1.1では, cầm 続 tiếp 続がデフォルトとなった. すなわち, gì も chỉ định しなければ cầm 続 tiếp 続となり, cầm 続 tiếp 続を vọng まなければヘッダーフィールドにConnection: closeを thêm vào する sĩ dạng となっている.

パイプライン

Biên tập

クライアントは trước の リクエストに đối するサーバ の ứng đáp を đãi たずに đừng の リクエストを phát hành できる.

リクエストメソッド

Biên tập

HTTPでは8つ の メソッドが định nghĩa されている. ただし, thật tế の HTTP thông tín ではGETとPOSTメソッドが đại bộ phận を chiếm める.

HTTPメソッド の một lãm
メソッド HTTP/0.9 HTTP/1.0 HTTP/1.1
GET
POST
PUT
HEAD
DELETE
OPTIONS
TRACE
CONNECT
GET
Chỉ định されたURI の リソースを lấy り ra す. HTTP の nhất も cơ bản な động tác で, HTTP/0.9では duy nhất の メソッド.
POST
GETとは phản đối にクライアントがサーバにデータを truyền tin する. WebフォームやĐiện tử yết kỳ bảnへ の gửi bài などで sử dụng される. GET の trường hợp と cùng じく, サーバはクライアントにデータを phản すことができる.
PUT
Chỉ định したURIにリソースを bảo tồn する. URIが chỉ し kỳ すリソースが tồn tại しない trường hợp は, サーバはそ の URIにリソースを tác thành する. Bức họa の アップロードなどが đại biểu.
DELETE
Chỉ định したURI の リソースを trừ bỏ する.
OPTIONS
サーバを điều tra する. Lệ えば, サーバがサポートしているHTTPバージョンなどを biết ることができる.
HEAD
GETと tựa ているが, サーバはHTTPヘッダ の み phản す. クライアントはWebページを lấy được せずともそ の Webページが tồn tại するかどうかを biết ることができる. Lệ えばWebページ の リンク trước が sinh きているか, データを toàn て lấy được することなく kiểm chứng することができる.
TRACE
サーバまで の ネットワーク kinh lộ をチェックする. サーバは chịu け lấy ったメッセージ の それ tự thể をレスポンス の データにコピーして ứng đáp する. Windows の TracertやUNIX の Tracerouteとよく tựa た động tác.
CONNECT
TCPトンネルを tiếp 続する. Ám hiệu hóa したメッセージをプロキシサーバを kinh từ して転 đưa する tế に dùng いる. Lúc trước,ネットスケープコミュニケーションズによって khảo án されたも の がIETFドラフトTunneling TCP based protocols through Web proxy serversとして công khai され[9],RFC2817に lấy り込まれた. そ の sau,RFC7230で định nghĩa が đổi mới されている[10].

HTTP の sĩ dạng bên ngoài で định nghĩa しているメソッドは, IANA の Hypertext Transfer Protocol (HTTP) Method Registry[11]で quản lý されている. WebDavで sử dụng するも の や,RFC5789PATCHメソッド(Tiếng Anh bản)などがある.

サーバ の liền huề

Biên tập

バーチャルホスト

Biên tập

1つ の サーバーで số nhiều の ホスト danh に đối するHTTPリクエストを chịu け phó ける cơ năng である.

インターネット người khí に bạn い nhiều く の xí nghiệp がWebサイトを cầm ち thủy めたが, lúc ấy はまだまだ xí nghiệp が tự trước の Webサーバを vận dụng する の は nhân viên, hiệu suất の vấn đề で khó しく,ISPの サーバでホスティングをしていた. また, 1 xã ごとに chuyên dùng サーバを dụng ý するほど の ことでもないため, 1 đài の サーバで số nhiều の Webサイトを vận dụng していた.

しかし, IPアドレス の みで tương tay を riêng するHTTP/1.0はこれに đối ứng できなかった. Lệ えば, ある1 đài の サーバに foo.example と bar.example という2つ の仮 tưởng Webサーバがあり, クライアントは http://foo.example /index.html にアクセスしたいとする. こ の trường hợp はDNSサーバに foo.example の IPアドレスを hỏi い hợp わせ, thứ にそ の IPアドレスを sử って phải làm サーバにアクセスし, GET index.html を yêu cầu することになる. しかし cùng じサーバ thượng にある bar.example もIPアドレスは cùng じであり, もし lạng phương の 仮 tưởng サーバに index.html というファイルが tồn tại すれば, クライアントがどちらにアクセスしようとしている の か, phân biệt できない.

Đối sách としてはそれぞれにIPアドレスを giao cho する phương pháp もあるが, IPv4 の tài nguyên を vô đà にすることになる. こ の vấn đề を giải quyết するため, HTTP/1.1でHostヘッダーフィールドが thêm vào され, danh trước ベースバーチャルホストが dùng いられるようになった.

Danh trước ベースバーチャルホスト の ため, dưới の ようにHTTPリクエストでホスト danh を chỉ định する.

  • HTTP/1.1: Hostヘッダーフィールドでホスト danh を chỉ định する.
  • HTTP/2およびHTTP/3::authority hư hư thực thực ヘッダーフィールドでホスト danh を chỉ định する.

リダイレクト

Biên tập

Đừng の URIに đối して lần nữa の メソッド thật hành を yêu cầu する cơ năng である. 301 Movedや303 See Otherなど の リダイレクトを chỉ thị するステータスコードとURIを chịu け lấy り, クライアントはこ の URIに lần nữa メソッドを thật hành する.

クッキー

Biên tập

HTTPメッセージ

Biên tập

リクエストとレスポンスでやり lấy りされるデータは, HTTPメッセージと hô ばれる. クライアントからリクエストHTTPメッセージを đưa り, サーバーからレスポンスHTTPメッセージを phản す.

HTTPメッセージは dưới で cấu thành される[12].

  • コントロールデータ
  • ヘッダー
  • コンテント
  • トレイラー

なおHTTP/1.1では, コントロールデータをリクエスト hành ・ステータス hành として biểu hiện し, コンテントを cách nạp する bộ phận をメッセージボディまたは単にボディと hô ぶ.

ヘッダー・コンテント・トレイラーは không となる trường hợp もある.

Hạ にもっとも単 thuần なクライアントとサーバ( google.co.jp:80)と の やり lấy り の lệ を cử げる.

クライアント の リクエスト:

GET/HTTP/1.1
Host:google.co.jp

こ の lệ では, リクエスト hành とヘッダーにフィールドが1 hạng mục ある の みで, ボディは không でトレーラーも vô い. リクエスト hành はメソッド, リクエストターゲット, HTTPバージョン の 3つ の yếu tố から cấu thành され, それぞれスペースで khu thiết られる. メソッドはGET,リクエストターゲットは “/”, HTTPバージョンは1.1である.

GETはリソースを lấy được するため の メソッドであり, リクエストターゲット の “/” はURI の パス bộ phận であってルートリソースを đối tượng にしたリクエストであることを kỳ している.

サーバ の レスポンス:

HTTP/1.1200OK
Cache-Control:private
Content-Type:text/html
Set-Cookie:PREF=ID=72c1ca72230dea65:LD=ja:TM=1113132863:LM=1113132863:S=nNO7MIp
W2o7Cqeu_;expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.co.jp
Server:GWS/2.1
Date:Sun, 10 Apr 2005 11:34:23 GMT
Connection:Close

<html><head><metahttp-equiv="content-type"content="text/html; charset=Shift_JI
S "><title>Google</title><style><!--
…… Dưới tỉnh lược -->

Lúc đầu の ステータス hành はHTTPバージョン, ステータスコード, ステータスメッセージから cấu thành される. ステータスコード の “200” は処 lý の thành công を biểu し, これを bổ túc するメッセージが “OK” である.

2 hành mục lấy hàng にヘッダフィールドが続く. さらに không hành を hiệp んで, レスポンスボディとなる. こ の レスポンスにもトレーラーは vô い.

HTTPヘッダフィールド

Biên tập

ヘッダ の các yếu tố は

フィールド danh: Nội dung

の ペアで cấu thành される.

ブラウザ の tình báo を biểu すUser-Agent,Sử dụng dự khuyết ngôn ngữ を biểu すAccept-Language,Hắn ページへ の リンクを siêm った trường hợp にそ の リンク nguyên ページ のURLを biểu すRefererなどが đại biểu なフィールドである.

なお, リクエスト khi のHostヘッダはHTTP/1.1では cần thiết であるが, HTTP/1.0ではなくてもよい. ただし, サーバがバーチャルホストを lợi dụng している trường hợp は,Hostヘッダがないとリソース lấy được に thất bại する の で, たとえHTTP/1.0を sử dụng していてもHostヘッダを phó thêm しなければならない.

HTTPヘッダフィールド の một lãm

Biên tập
リクエストヘッダ
ヘッダ Điểm chính HTTP/0.9 HTTP/1.0 HTTP/1.1
Accept クライアント の chịu け nhập れ khả năng コンテンツタイプを kỳ す
Accept-Charset クライアント の chịu け nhập れ khả năng văn tự セットを kỳ す
Accept-Encoding クライアント の chịu け nhập れ khả năng văn tự エンコーディングを kỳ す
Accept-Language クライアント の chịu け nhập れ khả năng ngôn ngữ を kỳ す
Authorization クライアント の chứng thực tình báo を kỳ す
Cookie クライアント の trạng thái quản lý tình báo をサーバに phản す
Cookie2 HTTP/1.1 の Set-Cookie2ヘッダ の chịu け nhập れ khả năng をサーバに biết らせる
Expect クライアントがサーバに chờ mong する động tác を kỳ す
From リクエスト phát hành giả cá nhân の tình báo を kỳ す. Giống nhau に điện tử メールアドレスを sử dụng する
Host Yêu cầu しているオブジェクトがあるホストを kỳ す
If-Match if vănを dùng い điều kiện が thật の trường hợp の みリクエストを処 lý するようサーバに yêu cầu する
If-None-Match If-Match の nghịch で điều kiện が thật でない trường hợp の みリクエストを処 lý する yêu cầu
If-Range Điều kiện が thật の trường hợp の み chỉ định したオブジェクト の phạm 囲を phản すようサーバに yêu cầu する
If-Modified-Since Chỉ định ngày khi lấy hàng にオブジェクトが変 càng されている trường hợp の みリクエストを処 lý するよう yêu cầu する
If-Unmodified-Since If-Modified-Since の nghịch で thật でないとき の み thật hành する
Max-Forwards リクエスト の trung gian システム kinh từ số を lớn nhất いくつまでかを chỉ định する
Proxy-Authorization クライアントがプロキシサーバに đối して tự thân の chứng thực を hành う
Range オブジェクト toàn thể でなくリソース の một bộ を yêu cầu する
Referer リクエスト の ra sở を kỳ す. Giống nhau にはユーザ の siêm ったWebページ の URLが dùng いられる
TE レスポンス の chịu け nhập れ khả năng 転 đưa エンコーディングを kỳ す
User-Agent クライアント の Webブラウザなど の tình báo を kỳ す
レスポンスヘッダ
ヘッダ Điểm chính HTTP/0.9 HTTP/1.0 HTTP/1.1
Accept-Ranges オブジェクト の một bộ に đối するリクエストをサーバが chịu け nhập れ khả năng か kỳ す
Age オブジェクト の kinh qua thời gian を giây 単 vị で phản す
ETag オブジェクト の エンティティタグ trị を kỳ す
Location オブジェクト の nơi を kỳ す
Proxy-Authenticate プロキシサーバがクライアントに chứng thực を yêu cầu するときに dùng いる
Retry-After リクエスト の thử lại hành をいつ hành うかをクライアントに thông tri する
Server サーバ の ベンダー danh, バージョン phiên hiệu を kỳ す
Set-Cookie2 サーバがクライアントにCookieを truyền tin するときに dùng いる
Vary サーバがレスポンス nội dung を quyết định する tế にリクエストURI bên ngoài に dùng いたヘッダ の リストを kỳ す
WWW-Authenticate クライアントに đối してリクエスト の lại phát hành を yêu cầu する. Chứng thực tình báo も hàm まれる
Giống nhau ヘッダ
ヘッダ Điểm chính HTTP/0.9 HTTP/1.0 HTTP/1.1
Cache-Control メッセージ の kinh từ する trung gian キャッシュ の động tác を chỉ thị する
Connection Đương nên の tiếp 続に đối するオプションを chỉ thị する
Date メッセージ の tác thành ngày khi を kỳ す
Pragma メッセージに quan する thêm vào tình báo を kỳ す
Trailer メッセージボディ の sau に thêm vào の ヘッダーが biểu れることを kỳ す
Transfer-Encoding クライアント の 転 đưa を mục đích としたオブジェクト の エンコーディングを kỳ す
Upgrade Thông tín tương tay に đừng の プロトコルにアップデートするよう yêu cầu する
Via プロキシサーバなど trung 継 địa điểm を kỳ す.
Warning メッセージに quan する thêm vào tình báo を kỳ す. Thông thường はキャッシュ の vấn đề を cảnh cáo するときに sử われる
エンティティヘッダ
ヘッダ Điểm chính HTTP/0.9 HTTP/1.0 HTTP/1.1
Allow オブジェクトがサポートするHTTPメソッドを kỳ す
Content-Encoding オブジェクト の エンコーディングを kỳ す
Content-Language オブジェクト の ngôn ngữ ( nhân gian の ngôn ngữ ) を kỳ す
Content-Length オブジェクト の サイズをバイト単 vị で kỳ す
Content-Location オブジェクト の nơi を kỳ す
Content-MD5 オブジェクト の メッセージダイジェストを vận ぶ
Content-Range メッセージボディで vận ばれるオブジェクト の phạm 囲を kỳ す
Content-Type オブジェクト の タイプを kỳ す
Expires オブジェクト の có hiệu kỳ hạn の ngày khi を kỳ す
Last-Modified オブジェクトが cuối cùng に変 càng された ngày khi を kỳ す
Accept
サーバ の レスポンスに hàm まれるメッセージボディで chịu け nhập れることが ra tới るコンテンツタイプと các コンテンツタイプ の tương đối な ưu tiên độ を chỉ định するリクエストヘッダ. Chỉ định できるコンテンツタイプはIANAによって định nghĩa されている.
Accept: text/plain; q=0.5, text/html,
text/x-dvi; q=0.8, text/x-c
Thượng nhớ の ようにAcceptヘッダには hành をわけて số nhiều の コンテンツタイプを chỉ định できる. Thượng nhớ の lệ はいずれ の 4 の コンテンツタイプ の いずれも chịu け nhập れ khả năng であることを kỳ す. 0.5や0.8といった con số は phẩm chất hệ số で0〜1 の phạm 囲 の số trị である. Số trị の chỉ định がなければ1.0となる.
  • text/plain; q=0.5
  • text/html
  • text/x-dvi; q=0.8
  • text/x-c
Accept-Charset
レスポンスで phản されるメッセージボディ のVăn tự コードを chỉ định するリクエストヘッダ. Acceptと cùng じく số nhiều chỉ định でき phẩm chất hệ số も giả thiết できる. Định nghĩa tế み văn tự セットはIANAが quản lý している.
Accept-Charset: UTF-8, *; q=0.8
こ の lệ だとクライアントはUTF-8を ưu tiên に hy vọng しているが hắn の văn tự セットと の tương đối ưu tiên độ 0.8で chịu け nhập れている. ただしサーバから の レスポンス の HTTPヘッダそ の も の の văn tự コードは thường にISO-8859-1である.
Accept-Encoding
クライアントが chịu tin できるメッセージボディ の エンコーディングを chỉ định する.
Accept-Encoding: gzip, deflate
こ の lệ ではクライアントはgzip,またはzlibフォーマットに đối ứng している. ただし tất ずしもここで chỉ định されたエンコーディングでメッセージボディが phản ってくるとは hạn らない.
Accept-Encodingで chỉ định khả năng なエンコーディングは, IANAがHTTP Content Coding Registryとして quản lý されている[13].
Accept-Language
レスポンス の ngôn ngữ ( nhân gian の ngôn ngữ ) に đối する ưu tiên độ を chỉ định する. Ngôn ngữ の chỉ định にはIETF ngôn ngữ タグを dùng いる. Thư き phương は hắn の Accept- đàn と変わらず.
Accept-Language: en-gb, en; q=0.8
Thượng nhớ の lệ はまずイギリス tiếng Anhを yêu cầu し, lợi dụng できない trường hợp はそ の hắn の tiếng Anh を yêu cầu する.
Accept-Ranges
Acceptで thủy まる hắn の ヘッダフィールドと vi いレスポンスヘッダである. Hiện tại の sĩ dạng では2つ の chỉ định phương pháp しかない.
Age
リソース の đề cử kinh qua thời gian を tỏ vẻ するレスポンスヘッダ. キャッシュサーバーはAgeヘッダ の trị からキャッシュしたリソースが có hiệu かどうかを phán định する.
Allow
Authentication-info
ユーザ chứng thực の やりとり の cuối cùng で dùng いられる, thành công したレスポンス の サーバが hàm めること の ra tới るレスポンスヘッダ.
Authorization
サーバに đối するクライアント tự thân の chứng thực を hành うことが ra tới る.
Cache-Control
キャッシング の động tác を chỉ định するため の マスターヘッダ.
Connection
Tiếp 続に đối するオプションを chỉ định する. そ の trị には dưới が sử dụng される.
keep-alive
Cầm 続 tiếp 続を hành う.
close
Cầm 続 tiếp 続を hành わない.
upgrade
Hắn の プロトコルへ の アップグレードを hy vọng する.
Content-Encoding
Content-Language
リソース の biểu hiện に dùng いられる ngôn ngữ の minh kỳ に sử われる. Ngôn ngữ の chỉ định はAccept-Languageヘッダと cùng じ.
Content-Length
Content-Location
Content-MD5
メッセージボディが変 càng されず uyển trước に giới いたこと の bảo đảm に dùng いる.MD5によるハッシュ trị をヘッダー trị に ghi lại する. ただし ác ý の sửa ざんに đối しては đương nhiên MD5も sửa ざんされる の であまり cơ năng はしない. どちらかといえば ngẫu nhiên phát な変 hóa が sinh じていないこと の bảo đảm をしている[14].RFC7231で廃 ngăn された[15].
Content-Range
ダウンロード の lại khai に dùng いられる.
Content-Type
メッセージボディに hàm まれるオブジェクトタイプを kỳ す. Thứ の lệ はリソースがテキストファイル, văn tự セットはISO-8859-4を sử dụng していることを kỳ している.
Content-Type: text/plain; Charset=ISO-8859-4
Cookie
クライアントがHTTP trạng thái quản lý を vọng む trường hợp にサーバから chịu け lấy ったクッキーを về sau の リクエストに thứ の lệ の ようなヘッダを phó thêm する.
Cookie: $Version= "1"; NAME= "VALUE";
$Path= "/shopping"; $domain= "shop" +
$Port= "80"
$VersionはHTTP の バージョン, NAMEはクッキー の danh trước である. $から thủy まるクッキー danh は sử dụng が cấm されている.
Cookie2
Cơ bản にCookieヘッダとCookie2ヘッダは vật gì khác である.
Date
サーバがメッセージを sinh thành した ngày khi を kỳ す. リソース の đổi mới ngày khi を kỳ すLast-Modifiedヘッダとは đừng である.
HTTP/1.1では thứ の ような hình thức を dùng いる. これはRFC7231の 7.1.1.1. Date/Time Formatsで định nghĩa されている. HTTP/1.1 の trước kia の bản であるRFC2616では, ngày khi の hình thức の định nghĩa にRFC1123を tham chiếu していた ( nội dung は ngang nhau である ).
Date: Sun, 06, Nov 1994 08:49:37 GMT
HTTP sĩ dạng ではレスポンスにDateヘッダを hàm めることを cầu めている. ただしレスポンス の ステータスがサーバエラー の trường hợp にはDateヘッダは phản らない.
ETag
Chủ にキャッシング の パフォーマンスを hướng về phía trước する mục đích で sử われる.
Expect
サーバに đối して riêng の động tác の chờ mong を biết らせる. Sử dụng としてはクライアントがサーバに đối して100 Continueステータスを phản すことを chờ mong する trường hợp に sử われる.
Expect: 100-continue
サーバが chờ mong に ứng じられない trường hợp は417 Expectation Failedを phản す. クライアントがいくつか の プロキシ kinh từ で thông tín している trường hợp, các プロキシサーバはExpectヘッダ の hết thảy の tu chỉnh を hứa されない.
Expires
オブジェクト の có hiệu kỳ hạn を kỳ す. こ の ヘッダで chỉ định された ngày khi までキャッシュはレスポンス の コピーを bảo trì し, リクエストに đối するレスポンスとして phản すことができる. サーバがオブジェクト の キャッシュを vọng まない trường hợp にはExpiresヘッダに qua đi の ngày khi を giả thiết することが nhiều い. Sĩ dạng では1 năm trở lên trước の ngày khi は giả thiết できない.
Expires: Thu, 28 Aug 2010 16:00:00 GMT
Cache-Controlヘッダ のmax-ageディレクティブはExpiresヘッダより ưu tiên されるため chú ý が tất yếu である.
From
リクエストを phát hành したユーザを riêng することが ra tới る. 1990 niên đại では điện tử メールアドレスを giả thiết することが nhiều かったが,Mê hoặc メールの vấn đề もあり hiện tại では đãi ど sử われていない.
From: user@example
Host
Chủ にレンタルサーバ の サポートを mục đích としてHTTP/1.1で dẫn vào された. Hiện tại ではHostヘッダを lợi dụng できない trường hợp, レンタルサーバ の Webサイトとまともな thông tín ができないと ngôn ってよい ( kỹ càng tỉ mỉ はHTTP# lịch sửを tham chiếu ).
If-Match
ETagが nhất trí した trường hợp の み, メソッドを thật hành するようにサーバに yêu cầu する. Lệ えばウィキペディアを biên tập する tế, ký sự の ソースを lấy được し, thư き đổi える tế の gian に đừng の ユーザが đã に biên tập していないかを phán đoán するときなどに dùng いられる.
  1. Lợi dụng giả: AがHTTP の ký sự を lấy được.ETagは1234.
  2. Lợi dụng giả: BがHTTP の ký sự を lấy được.ETagは1234.
  3. Lợi dụng giả: AがHTTP のETagを lần nữa lấy được. Trước ほど lấy được したETag: 1234と hiện tại のETag: 1234が nhất trí.
  4. Lợi dụng giả: AがHTTP の ký sự を biên tập.ETagは1256になる.
  5. Lợi dụng giả: BがHTTP の ETagを lần nữa lấy được. Trước ほど lấy được したETagと hiện tại の ETagはマッチせず.
  6. サーバは lợi dụng giả: B の thư き込みを cự không.
If-Modified-Since
Chỉ định ngày khi lấy hàng にオブジェクトが変 càng されている trường hợp の み, メソッドを thật hành するようにサーバに yêu cầu する. Thông tín lượng の cắt giảm に hiệu quả がある.
If-None-Match
If-Matchの nghịch で, ETagが nhất trí しない trường hợp の み の thật hành を yêu cầu する.
If-Range
クライアントがキャッシュにオブジェクト の một bộ phận を cầm っている trường hợp にパフォーマンスを hướng về phía trước できる.
If-Unmodified-Since
If-Modified-Sinceの nghịch で, chỉ định thời khắc lấy hàng に変 càng がない trường hợp の み の thật hành を yêu cầu する.
Last-Modified
レスポンスでオブジェクト の cuối cùng đổi mới ngày khi を kỳ す. リクエスト khi のIf-Modified-Sinceヘッダと tổ み hợp わせることで, hiệu suất な thông tín が khả năng になる.
Location
サーバがクライアントにリダイレクト trước URLを biết らせる tế に dùng いられる. Giống nhau にステータスコードが3xx đại の レスポンスと cộng に sử われるが201 Createdの レスポンスでも sử うことができる.Content-Locationヘッダと danh trước が tựa ているが toàn く quan hệ の ない đừng の ヘッダであるため chú ý.
Max-Forwards
プロキシサーバなどを kinh từ する tế の lớn nhất ホップ số を chỉ định する. Nhị trọng ループなどでサーバから ứng đáp が đến られない trường hợp の vấn đề giải quyết の tế,OPTIONメソッドやTRACEメソッドと cộng に dùng いられる.

HTTPステータスコード

Biên tập

ステータスコードはサーバから の レスポンスで, リクエスト の kết quả を thông tri する. 3 hằng の con số から thành り, おおまかな phân loại として, 1xxは “Tình báo”, 2xxは “Thành công”, 3xxは “リダイレクト”, 4xxは “クライアントエラー”, 5xxは “サーバエラー” を kỳ す.

セキュリティ kỹ thuật

Biên tập

いくつか の quan điểm でセキュリティに quan する thêm vào cơ năng が tồn tại する.

セキュアな thông tín lộ でHTTP thông tín を hành うことを thông thường HTTPSと ngôn う.

HTTP chứng thực

Biên tập

HTTP の trung で chứng thực を hành う sĩ tổ みが dụng ý されている.

Basic chứng thực

Biên tập

HTTP/1.1で định nghĩa されている nhất も単 thuần なセキュリティ kỹ thuật である. “Cơ bản chứng thực を dùng いるくらいならなにも sử わない phương がまし” と chủ trương する người もいる[16].Bình vănで chứng thực tình báo を truyền tin する sĩ tổ みであるため, TLS (HTTPS)など an toàn を bảo đảm した thông tín lộ で の lợi dụng が vọng ましい. Thông thường サーバはステータスコード401で ứng đáp する.

Digest chứng thực

Biên tập

Quy cách

Biên tập

HTTPはIETFを thủy めとした chuẩn hoá đoàn thể により quy cách hóa されている. Dưới はそ の một bộ である.

セマンティクス キャッシュ Tay 続き
HTTP/1.1 RFC9110 RFC9111 RFC9112
HTTP/2 RFC9113
HTTP/3 RFC9114

Lịch sử には các バージョンが độc lập して quy cách hóa されてきた. しかし hiện hành の 3バージョン ( v1.1, v2, v3 ) が chung の セマンティクスを duy trì していたことから, これを độc lập した quy cách とする hoạt động が đẩy mạnh され hiện tại の hình になっている[17].

Đẻ ra ・拡 trương プロトコル

Biên tập

HTTPS の ほか, dưới の ようなHTTP の セマンティクスを lợi dụng するプロトコル, HTTP の cấu văn を nguyên とするプロトコルなどが tồn tại する. Dưới はそ の đồng loạt である.

  • WebDAV:HTTP thượng でファイル転 đưa を thật hiện するプロトコル.
  • WebSocket:Hai bên hướng thông tín プロトコル.
  • Internet Printing Protocol(IPP): プリンタ の chế ngự と in ấn データ の vân đưa を hành うプロトコル.
  • UPnPでは, HTTPをUDP thượng で sử dụng するHTTPUや,マルチキャストで sử dụng するHTTPMUが quy định された.
  • Hyper Text Coffee Pot Control Protocol(HTCPCP): エイプリルフール の ジョーク. コーヒーポット の chế ngự cơ năng を có するプロトコル.

なお, こ の ようなHTTP の lợi dụng に quan する công văn としてRFC9205Building Protocols with HTTP (BCP 56)が tồn tại する.

Chú thích

Biên tập
  1. ^ab"The Hypertext Transfer Protocol (HTTP) is a family of stateless, application-level, request/response protocols... HTTP is a stateless request/response protocol for exchanging 'messages' across a connection."RFC9110.
  2. ^The HTTP Protocol As Implemented In W3
  3. ^Sebastian Anthony (2012 năm 3 nguyệt 28 ngày ). “S&M vs. SPDY: Microsoft and Google battle over the future of HTTP 2.0”.ExtremeTech.2014 năm 9 nguyệt 23 ngàyDuyệt lãm.
  4. ^Jerome Louvel (2011 năm ngày 6 tháng 10 ). “Can the rise of SPDY threaten HTTP?”.Restlet.2014 năm 9 nguyệt 23 ngàyDuyệt lãm.
  5. ^Gigazine『UDPベース の “HTTP-over-QUIC” が tân HTTPバージョン “HTTP/3” に tên 変 càng される』”.GIGAZINE (2018 năm 11 nguyệt 14 ngày ).2018 năm 11 nguyệt 14 ngàyDuyệt lãm.
  6. ^IETF Meeting の tư liệu スライド
  7. ^QUIC の lời nói (QUICプロトコル の giản 単なまとめ)”.ASnoKaze blog(2018 năm 10 nguyệt 31 ngày ).2019 năm 5 nguyệt 12 ngàyDuyệt lãm. “Sau thuật の ストリーム の quản lý がQUICレイヤに di り, それにあわせフレーム の 変 càng やQUICストリーム の lợi dụng phương pháp の định nghĩa”
  8. ^QUIC の lời nói (QUICプロトコル の giản 単なまとめ)”.ASnoKaze blog(2018 năm 10 nguyệt 31 ngày ).2019 năm 5 nguyệt 12 ngàyDuyệt lãm. “ヘッドオブラインブロッキング tránh けるために, HPACKをQUIC dùng に cải tiến したQPACKを dùng いる”
  9. ^RFC[https://datatracker.ietf.org/doc/html/rfc2817 2817 Upgrading to TLS Within HTTP/1.1]” (2000 năm 5 nguyệt ).2019 năm 4 nguyệt 26 ngàyDuyệt lãm. “The CONNECT method was originally described in a Work in Progress titled," Tunneling TCP based protocols through Web proxy servers ", by Ari Luotonen of Netscape Communications Corporation.”
  10. ^RFC[https://datatracker.ietf.org/doc/html/rfc7230 7230 Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing]” ( 2014 năm 6 nguyệt ).2019 năm 4 nguyệt 26 ngàyDuyệt lãm. “This specification also updates the use of CONNECT to establish a tunnel, previously defined inRFC2817,and defines the "https" URI scheme that was described informally inRFC2818.”
  11. ^Hypertext Transfer Protocol (HTTP) Method Registry
  12. ^RFC9110,6. Message Abstraction
  13. ^HTTP Content Coding Registry
  14. ^RFC[https://datatracker.ietf.org/doc/html/rfc1864 1864 The Content-MD5 Header Field]” ( tiếng Anh ).Internet Engineering Task Force(October 1995).2021 năm 1 nguyệt 30 ngàyDuyệt lãm. “This document specifies a data integrity service that protects data from accidental modification while in transit from the sender to the recipient.”
  15. ^RFC[https://datatracker.ietf.org/doc/html/rfc7231 7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]” ( tiếng Anh ).Internet Engineering Task Force(June 2014).2021 năm 1 nguyệt 30 ngàyDuyệt lãm. “The Content-MD5 header field has been removed because it was inconsistently implemented with respect to partial responses.”
  16. ^『HTTPプロトコル―セキュア&スケーラブルなWeb khai phát 』 Stephen Thomas, cát tây trọng phu 訳, ソフトバンクパブリッシング[Muốn ページ phiên hiệu]
  17. ^JPNIC News & Views vol.1647【 lâm thời hào 】 đệ 103 hồi IETF báo cáo [ đệ 4 đạn ] トランスポートエリア quan liền báo cáo ~HTTP over QUICからHTTP/3へ の đổi tên ~”.Nhật Bản ネットワークインフォメーションセンター(2018 năm 12 nguyệt 13 ngày ).2021 năm 6 nguyệt 28 ngàyDuyệt lãm.

Quan liền hạng mục

Biên tập

Phần ngoài リンク

Biên tập

Dưới は kiểu cũ であり phi đẩy thưởng となった sĩ dạng

そ の hắn