Hypertext Transfer Protocol
Thông tín プロトコル | |
![]() | |
Mục đích | ハイパーテキストなどの転 tống |
---|---|
Khai phát giả | |
Đạo nhập | 1991 niên |
Phái sinh tiên | HTTP/2,HTTP/3,WebDAV |
OSI giai tằng | アプリケーション tằng |
ポート | 80 |
RFC |
HTTP |
---|
Chủ yếu hạng mục |
リクエストメソッド |
ヘッダーフィールド |
ステータスコード |
Nhận chứng phương thức |
セキュリティホール |
Hypertext Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル,HTTP) はアプリ gian コネクション thượng のリクエスト/レスポンス hình ・ステートレス・メッセージ chỉ hướngThông tín プロトコルである[1].
Khái yếu[Biên tập]
TCPやQUICはアプリケーション gian のコネクション hình thông tín を đề cung する. HTTPはこのコネクション thượng を, リソース yếu vọng と phản đáp が, メッセージ単 vị で, 1 vãng phục のクライアントリクエスト&サーバーレスポンスという hình で thông tín される, と định めたプロトコルである[1].
HTTPの phát minh により,インターネットThượng でのリソース công khai とアクセスが dung dịch になった. クライアントがサーバーとコネクションを xác lập し1つのHTTPメッセージを thư いて tống るだけで, サーバー thượng のリソースがHTTPメッセージとして quy ってくる. ゆえにHTTPで công khai されるあらゆるリソースにHTTPという単 nhất の thủ pháp でアクセスできるようになった.
HTTPを khai phát した lý do でありかつ hiện tại も quảng く lợi dụng される dụng đồ はWorld Wide Webである.WebサーバとWebブラウザはHTTPで chủ に thông tín しており, ブラウザからのHTTPメッセージに ứng đáp してサーバーがHTMLテキストやJavaScriptコードを tống り phản し, これをブラウザで biểu kỳ することでウェブが thành lập している.
またHTTPはメッセージ hình thức を định める. Cơ bổn đích な khảo え phương は単 thuần で “Hà を” “どうして” dục しいのかを vân える. Lệ えばリクエストメッセージGET /apple.jpg
は “apple.jpg họa tượng を, thủ に nhập れたい” を ý vị する.URLが “Hà を” に, メソッドが “どうして” に đương たる.
World Wide WebにおけるWebページなどのリソースは,Uniform Resource Identifierによって chỉ định される. HTTP を sử dụng してリソースにアクセスするときは, http: が tiên đầu についた URL を sử dụng する. Hạ にURL の lệ を cử げる.
http://www.example.co.jp/~test/samples/index.html
Tối sơ の HTTP/0.9 ではURLを chỉ định してコンテントをダウンロードするのみの giản 単なやりとりだったが, HTTP/1.0 で cải lương された.
- リクエストのセマンティクスを chỉ định する, dạng 々なリクエストメソッドが truy gia された. POSTを sử って, アップロード ( クライアントからサーバへのデータの転 tống ) が khả năng になった.
- NNTPやSMTPのような các chủng ヘッダが định nghĩa され,HTTP cookieなどの lợi dụng が khả năng になった.
HTTP/1.1 では phục sổ データを hiệu suất よく転 tống するための trì 続 đích tiếp 続や,プロキシの lợi dụng なども tưởng định した sĩ dạng になった. さらにHTTP/2やHTTP/3が sách định された. Hiện tại ではHTTPセマンティクスと các バージョンの thủ 続きが phân ly して định nghĩa されている (# quy cáchを tham chiếu ).
このほかの điểm を cá điều thư きで kỳ す.
- TCPのポート phiên hào80をデフォルトとして sử dụng する ( HTTP/0.9〜1.1とHTTP/2の tràng hợp ).
- TLSで ám hào hóa され, セキュリティを xác bảo したHTTPは,HTTPSと hô ばれる ( httpsは thật tế にはURIスキームの1つであり, thật tế のプロトコルにはHTTP over SSL/TLSまたはHTTP/3が dụng いられる ).
- HTTP は cơ bổn đích にサーバが trạng thái を bảo trì しない (stateless) プロトコルだが,データベースなどを sử dụng するWebアプリケーションにおいては trạng thái bảo trì が tất yếu だったため, いわゆるCookie( クッキー ) とよばれる cơ cấu がNetscape Communications Corporationによって đạo nhập された. Cookie を sử dụng することによって trạng thái を quản lý し,セッションを duy trì することが khả năng になる.
- Hành mạt văn tự はCRLFで,インターネット・プロトコル・スイートにおいてアプリケーション tằngに chúc する tha の đa くのプロトコルと đồng じである ( HTTP/0.9〜1.1の tràng hợp ).
Lịch sử[Biên tập]
イギリスの vật lý học giảティム・バーナーズ=リーは1990 niênMạt,ロバート・カイリューと cộng に sơ のWebブラウザとWebサーバを tác thành した. ブラウザには thông tín をするためのプロトコルが tất yếu だったので, nhị nhân はHTTPの tối sơ kỳ のバージョンを thiết kế した.
Dĩ lai インターネットの đại bộ phân をHTTP thông tín が chiêm めるようになり,1998 niênにはインターネット thượng の thông tín の75%がHTTPによるものになった.
Tối sơ kỳ のHTTP/0.9の sĩ dạng thư は chỉ に ấn xoát すれば1 mai で tế むような phi thường に giản tố なドキュメントだったが, 2 độ のバージョンアップを kinh たHTTP/1.1の sĩ dạng thư は thật に176ページ cận くの phân lượng に bành れあがった.
HTTP/0.9[Biên tập]
1991 niênに tối sơ にドキュメント hóa されたバージョン[2].メソッドは GET しかなかった. レスポンスは単 thuần にドキュメントの nội dung を phản してコネクションを thiết đoạn するだけで, レスポンスコードの quy định もない. Hạ ký は, HTTP/0.9 のリクエストの lệ.
GET /index.html
HTTP/1.0[Biên tập]
1996 niên5 nguyệtにRFC1945として phát biểu された. Sĩ dạng が RFC で tráp われるようになった. メソッドに POST など GET dĩ ngoại のものが tăng えた. レスポンスはヘッダーがつくようになり, ステータスコードを hàm めるようになった. HTTP/0.9 と khu biệt するため, リクエストプロトコルにバージョンを hàm めることになった.
- HTTP/1.0のリクエスト
-
GET/index.htmlHTTP/1.0
- HTTP/1.1のリクエスト
-
GET/index.htmlHTTP/1.1 Host:foo.example.com
HTTP/1.1[Biên tập]
1997 niên1 nguyệtにRFC2068として sơ bản が phát biểu された. その hậu, 3 hồi cải đính され, hiện tại はセマンティクス・キャッシングを trừ く bộ phân がRFC9112で quy định されている.
Danh tiền ベースバーチャルホストのため, Hostヘッダーフィールドの quy định が truy gia された.
HTTP/2[Biên tập]
HTTP/2の mục tiêu はHTTP/1.1のトランザクション・セマンティクスとの hoàn toàn な hậu phương hỗ hoán tính を duy trì したまま phi đồng kỳ な tiếp 続のĐa trọng hóa,ヘッダÁp súc,リクエストとレスポンスのパイプライン hóaを thật hiện することである.Googleによって lập ち thượng げられ[3],GoogleのブラウザーであるChromeだけではなく, tha にも,Opera,Firefox,Amazon Silkなどが đối ứng しているHTTP hỗ hoán のプロトコルSPDYの nhân khí が cao まっていることに đối ứng するために khai phát された[4].
HTTP/3[Biên tập]
HTTP-over-QUIC ( hq ) としてIETFが khai phát していた tân たなThông tín プロトコルが, HTTP/3へと cải danh される.[5] IETFが sách định を tiến めているQUICはトランスポート tằngにおけるプロトコルの danh xưng であり, アプリケーション tằng プロトコルであるHTTP-over-QUICとの khu biệt を minh xác にするため, このような danh xưng 変 canh に chí った.[6]
HTTP/2と bỉ べ, đa trọng hóa するストリームの thủ り tráp いが hạ vị tằng のQUICへ di hành したこと[7],ヘッドオブラインブロッキングを hồi tị するためのヘッダ áp súc の変 canh ( HTTP/3 dụng にQPACKが khai phát されている )[8]などの soa dị がある.
Động tác[Biên tập]
Thông tín の khai thủy[Biên tập]
Tha のプロトコル đồng dạng, クライアント trắc とサーバ trắc では dịch cát が đại きく dị なる. HTTP thông tín を khai thủy できるのはクライアント trắc のみである.
クライアント trắc がサーバにリクエストを tống り, サーバがクライアントにレスポンスを phản すのが tối も điển hình đích な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 があった. これは đương thời のWebサイトがシンプルなテキストベースであることが đa かったためである. Cận niên ではJavaScriptやアニメーション họa tượng など, đa sổ のオブジェクトが mai め込まれたWebサイトが nhất bàn đích となってきており, これらのオブジェクトを thủ đắc するたびにTCP tiếp 続を xác lập するのはサーバやネットワークに đại きな phụ đam を cường いるため, 1 hồi のTCP tiếp 続で, phục sổ のHTTPリクエスト・レスポンスをやり thủ りする trì 続 đích tiếp 続がHTTP/1.0の拡 trương として đạo nhập された. その hậu, HTTP/1.1では, trì 続 đích tiếp 続がデフォルトとなった. すなわち, hà も chỉ định しなければ trì 続 đích tiếp 続となり, trì 続 đích tiếp 続を vọng まなければヘッダーフィールドにConnection: closeを truy gia する sĩ dạng となっている.
パイプライン[Biên tập]
クライアントは tiền のリクエストに đối するサーバの ứng đáp を đãi たずに biệt のリクエストを 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/0.9 | HTTP/1.0 | HTTP/1.1 |
---|---|---|---|
GET | ○ | ○ | ○ |
POST | ○ | ○ | |
PUT | △ | ○ | |
HEAD | ○ | ○ | |
DELETE | △ | ○ | |
OPTIONS | ○ | ||
TRACE | ○ | ||
CONNECT | ○ |
- GET
- Chỉ định されたURIのリソースを thủ り xuất す. HTTPの tối も cơ bổn đích な động tác で, HTTP/0.9では duy nhất のメソッド.
- POST
- “POST (HTTP)”も tham chiếu
- GETとは phản đối にクライアントがサーバにデータを tống tín する. WebフォームやĐiện tử yết kỳ bảnへの đầu cảo などで sử dụng される. GETの tràng hợp と đồ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 する. Họa tượng のアップロードなどが đại biểu đích.
- DELETE
- Chỉ định したURIのリソースを tước trừ する.
- OPTIONS
- サーバを điều tra する. Lệ えば, サーバがサポートしているHTTPバージョンなどを tri ることができる.
- HEAD
- GETと tự ているが, サーバはHTTPヘッダのみ phản す. クライアントはWebページを thủ đắc せずともそのWebページが tồn tại するかどうかを tri ることができる. Lệ えばWebページのリンク tiên が sinh きているか, データを toàn て thủ đắc することなく kiểm chứng することができる.
- TRACE
- サーバまでのネットワーク kinh lộ をチェックする. サーバは thụ け thủ ったメッセージのそれ tự thể をレスポンスのデータにコピーして ứng đáp する. WindowsのTracertやUNIXのTracerouteとよく tự た động tác.
- CONNECT
- TCPトンネルを tiếp 続する. Ám hào hóa したメッセージをプロキシサーバを kinh do して転 tống する tế に dụng いる. Đương sơ,ネットスケープコミュニケーションズによって khảo án されたものがIETFドラフトTunneling TCP based protocols through Web proxy serversとして công khai され[9],RFC2817に thủ り込まれた. その hậu,RFC7230で định nghĩa が canh tân されている[10].
HTTPの sĩ dạng dĩ ngoại で định nghĩa しているメソッドは, IANAのHypertext Transfer Protocol (HTTP) Method Registry[11]で quản lý されている. WebDavで sử dụng するものや,RFC5789のPATCHメソッドなどがある.
サーバの liên huề[Biên tập]
バーチャルホスト[Biên tập]
1つのサーバーで phục sổ のホスト danh に đối するHTTPリクエストを thụ け phó ける cơ năng である.
インターネット nhân khí に bạn い đa くの xí nghiệp がWebサイトを trì ち thủy めたが, đương thời はまだまだ xí nghiệp が tự tiền のWebサーバを vận dụng するのは nhân viên, hiệu suất の vấn đề で nan しく,ISPのサーバでホスティングをしていた. また, 1 xã ごとに chuyên dụng サーバを dụng ý するほどのことでもないため, 1 đài のサーバで phục sổ のWebサイトを vận dụng していた.
しかし, IPアドレスのみで tương thủ を đặc định するHTTP/1.0はこれに đối ứng できなかった. Lệ えば, ある1 đài のサーバに foo.example.com と bar.example.com という2つの仮 tưởng Webサーバがあり, クライアントは http://foo.example.com/index.html にアクセスしたいとする. この tràng hợp はDNSサーバに foo.example.com のIPアドレスを vấn い hợp わせ, thứ にそのIPアドレスを sử って cai đương サーバにアクセスし, GET index.html を yếu cầu することになる. しかし đồng じサーバ thượng にある bar.example.comもIPアドレスは đồng じであり, もし lạng phương の仮 tưởng サーバに index.html というファイルが tồn tại すれば, クライアントがどちらにアクセスしようとしているのか, phán biệt できない.
Đối sách としてはそれぞれにIPアドレスを phó dữ する phương pháp もあるが, IPv4の tư nguyên を vô đà にすることになる. この vấn đề を giải quyết するため, HTTP/1.1でHostヘッダーフィールドが truy gia され, danh tiền ベースバーチャルホストが dụng いられるようになった.
Danh tiền ベースバーチャルホストのため, dĩ hạ のようにHTTPリクエストでホスト danh を chỉ định する.
- HTTP/1.1: Hostヘッダーフィールドでホスト danh を chỉ định する.
- HTTP/2およびHTTP/3::authority nghi tự ヘッダーフィールドでホスト danh を chỉ định する.
リダイレクト[Biên tập]
Biệt のURIに đối して tái độ のメソッド thật hành を yếu cầu する cơ năng である. 301 Movedや303 See Otherなどのリダイレクトを chỉ kỳ するステータスコードとURIを thụ け thủ り, クライアントはこのURIに tái độ メソッドを thật hành する.
クッキー[Biên tập]
HTTPメッセージ[Biên tập]
リクエストとレスポンスでやり thủ りされるデータは, HTTPメッセージと hô ばれる. クライアントからリクエストHTTPメッセージを tống り, サーバーからレスポンスHTTPメッセージを phản す.
HTTPメッセージは dĩ hạ で 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 なクライアントとサーバ(www.google.co.jp:80)とのやり thủ りの lệ を cử げる.
クライアントのリクエスト:
GET/HTTP/1.1
Host:www.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
はリソースを thủ đắ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ĩ hạ tỉnh lược -->
Tiên đầ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 dĩ 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 hầu bổ ngôn ngữ を biểu すAccept-Language
,Tha ページへのリンクを siêm った tràng hợp にそのリンク nguyên ページのURLを biểu すReferer
などが đại biểu đích なフィールドである.
なお, リクエスト thời のHost
ヘッダはHTTP/1.1では tất tu であるが, HTTP/1.0ではなくてもよい.
ただし, サーバがバーチャルホストを lợi dụng している tràng hợp は,Host
ヘッダがないとリソース thủ đắc に thất bại するので, たとえHTTP/1.0を sử dụng していてもHost
ヘッダを phó gia しなければならない.
HTTPヘッダフィールドの nhất lãm[Biên tập]
ヘッダ | Khái yếu | HTTP/0.9 | HTTP/1.0 | HTTP/1.1 |
---|---|---|---|---|
Accept | クライアントの thụ け nhập れ khả năng コンテンツタイプを kỳ す | ○ | ○ | |
Accept-Charset | クライアントの thụ け nhập れ khả năng văn tự セットを kỳ す | ○ | ○ | |
Accept-Encoding | クライアントの thụ け nhập れ khả năng văn tự エンコーディングを kỳ す | ○ | ○ | |
Accept-Language | クライアントの thụ け nhập れ khả năng ngôn ngữ を kỳ す | ○ | ○ | |
Authorization | クライアントの nhận chứng 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ヘッダの thụ け nhập れ khả năng をサーバに tri らせる | |||
Expect | クライアントがサーバに kỳ đãi する động tác を kỳ す | ○ | ||
From | リクエスト phát hành giả cá nhân の tình báo を kỳ す. Nhất bàn đích に điện tử メールアドレスを sử dụng する | ○ | ○ | |
Host | Yếu cầu しているオブジェクトがあるホストを kỳ す | ○ | ||
If-Match | if vănを dụng い điều kiện が chân の tràng hợp のみリクエストを処 lý するようサーバに yếu cầu する | ○ | ||
If-None-Match | If-Matchの nghịch で điều kiện が chân でない tràng hợp のみリクエストを処 lý する yếu cầu | ○ | ||
If-Range | Điều kiện が chân の tràng hợp のみ chỉ định したオブジェクトの phạm 囲を phản すようサーバに yếu cầu する | ○ | ||
If-Modified-Since | Chỉ định nhật thời dĩ hàng にオブジェクトが変 canh されている tràng hợp のみリクエストを処 lý するよう yếu cầu する | ○ | ○ | |
If-Unmodified-Since | If-Modified-Sinceの nghịch で chân でないときのみ thật hành する | ○ | ||
Max-Forwards | リクエストの trung gian システム kinh do sổ を tối đại いくつまでかを chỉ định する | ○ | ||
Proxy-Authorization | クライアントがプロキシサーバに đối して tự thân の nhận chứng を hành う | ○ | ||
Range | オブジェクト toàn thể でなくリソースの nhất bộ を yếu cầu する | ○ | ||
Referer | リクエストの xuất sở を kỳ す. Nhất bàn đích にはユーザの siêm ったWebページのURLが dụng いられる | ○ | ○ | |
TE | レスポンスの thụ け nhập れ khả năng 転 tống エンコーディングを kỳ す | ○ | ||
User-Agent | クライアントのWebブラウザなどの tình báo を kỳ す | ○ | ○ |
ヘッダ | Khái yếu | HTTP/0.9 | HTTP/1.0 | HTTP/1.1 |
---|---|---|---|---|
Accept-Ranges | オブジェクトの nhất bộ に đối するリクエストをサーバが thụ け nhập れ khả năng か kỳ す | ○ | ||
Age | オブジェクトの kinh quá thời gian を miểu 単 vị で phản す | ○ | ||
ETag | オブジェクトのエンティティタグ trị を kỳ す | ○ | ||
Location | オブジェクトの tràng sở を kỳ す | ○ | ○ | |
Proxy-Authenticate | プロキシサーバがクライアントに nhận chứng を yếu cầu するときに dụng いる | ○ | ||
Retry-After | リクエストの tái thí hành をいつ hành うかをクライアントに thông tri する | ○ | ○ | |
Server | サーバのベンダー danh, バージョン phiên hào を kỳ す | ○ | ○ | |
Set-Cookie2 | サーバがクライアントにCookieを tống tín するときに dụng いる | |||
Vary | サーバがレスポンス nội dung を quyết định する tế にリクエストURI dĩ ngoại に dụng いたヘッダのリストを kỳ す | ○ | ||
WWW-Authenticate | クライアントに đối してリクエストの tái phát hành を yếu cầu する. Nhận chứng tình báo も hàm まれる | ○ | ○ |
ヘッダ | Khái yếu | HTTP/0.9 | HTTP/1.0 | HTTP/1.1 |
---|---|---|---|---|
Cache-Control | メッセージの kinh do する trung gian キャッシュの động tác を chỉ kỳ する | ○ | ||
Connection | Đương cai の tiếp 続に đối するオプションを chỉ kỳ する | ○ | ||
Date | メッセージの tác thành nhật thời を kỳ す | ○ | ○ | |
Pragma | メッセージに quan する truy gia tình báo を kỳ す | ○ | ○ | |
Trailer | メッセージボディの hậu に truy gia のヘッダーが biểu れることを kỳ す | ○ | ||
Transfer-Encoding | クライアントの転 tống を mục đích としたオブジェクトのエンコーディングを kỳ す | ○ | ||
Upgrade | Thông tín tương thủ に biệt のプロトコルにアップデートするよう yếu cầu する | ○ | ||
Via | プロキシサーバなど trung 継 địa điểm を kỳ す. | ○ | ||
Warning | メッセージに quan する truy gia tình báo を kỳ す. Thông thường はキャッシュの vấn đề を cảnh cáo するときに sử われる | ○ |
ヘッダ | Khái yếu | 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 | オブジェクトの tràng sở を kỳ す | ○ | ||
Content-MD5 | オブジェクトのメッセージダイジェストを vận ぶ | △ | ||
Content-Range | メッセージボディで vận ばれるオブジェクトの phạm 囲を kỳ す | ○ | ||
Content-Type | オブジェクトのタイプを kỳ す | ○ | ○ | |
Expires | オブジェクトの hữu hiệu kỳ hạn の nhật thời を kỳ す | ○ | ○ | |
Last-Modified | オブジェクトが tối hậu に変 canh された nhật thời を kỳ す | ○ | ○ |
- Accept
- サーバのレスポンスに hàm まれるメッセージボディで thụ け nhập れることが xuất lai るコンテンツタイプと các コンテンツタイプの tương đối đích な ư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 ký のようにAcceptヘッダには hành をわけて phục sổ のコンテンツタイプを chỉ định できる. Thượng ký の lệ はいずれの4のコンテンツタイプのいずれも thụ け nhập れ khả năng であることを kỳ す. 0.5や0.8といった sổ tự は 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と đồng じく phục sổ chỉ định でき phẩm chất hệ sổ も thiết định できる. Định nghĩa tế み văn tự セットはIANAが quản lý している.
Accept-Charset: UTF-8, *; q=0.8
- この lệ だとクライアントはUTF-8を ưu tiên đích に hi vọng しているが tha の văn tự セットとの tương đối ưu tiên độ 0.8で thụ け nhập れている. ただしサーバからのレスポンスのHTTPヘッダそのものの văn tự コードは thường にISO-8859-1である.
- Accept-Encoding
- クライアントが thụ tín できるメッセージボディのエンコーディングを 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 は tha のAccept- quần と変わらず.
Accept-Language: en-gb, en; q=0.8
- Thượng ký の lệ はまずイギリス anh ngữを yếu cầu し, lợi dụng できない tràng hợp はその tha の anh ngữ を yếu cầu する.
- Accept-Ranges
- Acceptで thủy まる tha のヘッダフィールドと vi いレスポンスヘッダである. Hiện tại の sĩ dạng では2つの chỉ định phương pháp しかない.
- Age
- リソースの thôi định kinh quá thời gian を biểu kỳ するレスポンスヘッダ. キャッシュサーバーはAgeヘッダの trị からキャッシュしたリソースが hữu hiệu かどうかを phán định する.
- Allow
- Authentication-info
- ユーザ nhận chứng のやりとりの tối hậu で dụng いられる, thành công したレスポンスのサーバが hàm めることの xuất lai るレスポンスヘッダ.
- Authorization
- サーバに đối するクライアント tự thân の nhận chứng を hành うことが xuất lai る.
- Cache-Control
- キャッシングの động tác を chỉ định するためのマスターヘッダ.
- Connection
- Tiếp 続に đối するオプションを chỉ định する. その trị には dĩ hạ が sử dụng される.
- keep-alive
- Trì 続 đích tiếp 続を hành う.
- close
- Trì 続 đích tiếp 続を hành わない.
- upgrade
- Tha のプロトコルへのアップグレードを hi 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ヘッダと đồng じ.
- Content-Length
- Content-Location
- Content-MD5
- メッセージボディが変 canh されず uyển tiên に giới いたことの bảo chứng に dụng いる.MD5によるハッシュ trị をヘッダー trị に ký tái する. ただし ác ý の cải ざんに đối しては đương nhiên MD5も cải ざんされるのであまり cơ năng はしない. どちらかといえば ngẫu phát đích な変 hóa が sinh じていないことの bảo chứng をしている[14].RFC7231で廃 chỉ された[15].
- Content-Range
- ダウンロードの tá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
- Tường tế は “HTTP cookie”を tham chiếu
- クライアントがHTTP trạng thái quản lý を vọng む tràng hợp にサーバから thụ け thủ ったクッキーを dĩ hậu のリクエストに thứ の lệ のようなヘッダを phó gia する.
Cookie: $Version= "1"; NAME= "VALUE"; $Path= "/shopping"; $domain= "www.shop.com" + $Port= "80"
- $VersionはHTTPのバージョン, NAMEはクッキーの danh tiền である. $から thủy まるクッキー danh は sử dụng が cấm chỉ されている.
- Cookie2
- Cơ bổn đích にCookieヘッダとCookie2ヘッダは biệt vật である.
- Date
- サーバがメッセージを sinh thành した nhật thời を kỳ す. リソースの canh tân nhật thời を kỳ すLast-Modifiedヘッダとは biệt である.
- HTTP/1.1では thứ のような hình thức を dụng いる. これはRFC7231の7.1.1.1. Date/Time Formatsで định nghĩa されている. HTTP/1.1の dĩ tiền の bản であるRFC2616では, nhật thời の hình thức の định nghĩa にRFC1123を tham chiếu していた ( nội dung は đồng đẳng である ).
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 thượng する mục đích で sử われる.
- Expect
- サーバに đối して đặc định の động tác の kỳ đãi を tri らせる. Dụng đồ としてはクライアントがサーバに đối して100 Continueステータスを phản すことを kỳ đãi する tràng hợp に sử われる.
Expect: 100-continue
- サーバが kỳ đãi に ứng じられない tràng hợp は417 Expectation Failedを phản す. クライアントがいくつかのプロキシ kinh do で thông tín している tràng hợp, các プロキシサーバはExpectヘッダの nhất thiết の tu chính を hứa されない.
- Expires
- オブジェクトの hữu hiệu kỳ hạn を kỳ す. このヘッダで chỉ định された nhật thời までキャッシュはレスポンスのコピーを bảo trì し, リクエストに đối するレスポンスとして phản すことができる. サーバがオブジェクトのキャッシュを vọng まない tràng hợp には
Expires
ヘッダに quá khứ の nhật thời を thiết định することが đa い. Sĩ dạng では1 niên dĩ thượng tiên の nhật thời は thiết định できない.
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 したユーザを đặc định することが xuất lai る. 1990 niên đại では điện tử メールアドレスを thiết định することが đa かったが,Mê hoặc メールの vấn đề もあり hiện tại では đãi ど sử われていない.
From: [email protected]
- Host
- Chủ にレンタルサーバのサポートを mục đích としてHTTP/1.1で đạo nhập された. Hiện tại ではHostヘッダを lợi dụng できない tràng hợp, レンタルサーバのWebサイトとまともな thông tín ができないと ngôn ってよい ( tường tế は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ự のソースを thủ đắc し, thư き hoán える tế の gian に biệt のユーザが kí に biên tập していないかを phán đoạn するときなどに dụng いられる.“if văn”も tham chiếu
- Lợi dụng giả: AがHTTPの ký sự を thủ đắc.
ETag
は1234. - Lợi dụng giả: BがHTTPの ký sự を thủ đắc.
ETag
は1234. - Lợi dụng giả: AがHTTPの
ETag
を tái độ thủ đắc. Tiên ほど thủ đắc したETag: 1234
と hiện tại のETag: 1234
が nhất trí. - Lợi dụng giả: AがHTTPの ký sự を biên tập.
ETag
は1256になる. - Lợi dụng giả: BがHTTPのETagを tái độ thủ đắc. Tiên ほど thủ đắc した
ETag
と hiện tại のETagはマッチせず. - サーバは lợi dụng giả: Bの thư き込みを cự phủ.
- If-Modified-Since
- Chỉ định nhật thời dĩ hàng にオブジェクトが変 canh されている tràng hợp のみ, メソッドを thật hành するようにサーバに yếu cầu する. Thông tín lượng の tước 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
- クライアントがキャッシュにオブジェクトの nhất bộ phân を trì っている tràng hợp にパフォーマンスを hướng thượng できる.
- If-Unmodified-Since
If-Modified-Since
の nghịch で, chỉ định thời khắc dĩ hàng に変 canh がない tràng hợp のみの thật hành を yếu cầu する.
- Last-Modified
- レスポンスでオブジェクトの tối chung canh tân nhật thời を kỳ す. リクエスト thời の
If-Modified-Since
ヘッダと tổ み hợp わせることで, hiệu suất đích な thông tín が khả năng になる.
- Location
- サーバがクライアントにリダイレクト tiên URLを tri らせる tế に dụng いられる. Nhất bàn đích にステータスコードが3xx đại のレスポンスと cộng に sử われるが201 Createdのレスポンスでも sử うことができる.
Content-Location
ヘッダと danh tiền が tự ているが toàn く quan hệ のない biệt のヘッダであるため chú ý.
- Max-Forwards
- プロキシサーバなどを kinh do する tế の tối đại ホップ sổ を chỉ định する. Nhị trọng ループなどでサーバから ứng đáp が đắc られない 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 の sổ tự から 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 する truy gia cơ năng が tồn tại する.
HTTPS[Biên tập]
セキュアな thông tín lộ でHTTP thông tín を hành うことを thông thường HTTPSと ngôn う.
HTTP nhận chứng[Biên tập]
HTTPの trung で nhận chứng を hành う sĩ tổ みが dụng ý されている.
Basic nhận chứng[Biên tập]
HTTP/1.1で định nghĩa されている tối も単 thuần なセキュリティ kỹ thuật である. “Cơ bổn nhận chứng を dụng いるくらいならなにも sử わない phương がまし” と chủ trương する nhân もいる[16].Bình vănで nhận chứng tình báo を tống tín する sĩ tổ みであるため, TLS (HTTPS)など an toàn を xác bảo した thông tín lộ での lợi dụng が vọng ましい. Thông thường サーバはステータスコード401で ứng đáp する.
Digest nhận chứng[Biên tập]
Quy cách[Biên tập]
HTTPはIETFを thủy めとした tiêu chuẩn hóa đoàn thể により quy cách hóa されている. Dĩ hạ はその nhất bộ である.
セマンティクス | キャッシュ | Thủ 続き | |
---|---|---|---|
HTTP/1.1 | RFC9110 | RFC9111 | RFC9112 |
HTTP/2 | RFC9113 | ||
HTTP/3 | RFC9114 |
Lịch sử đích には các バージョンが độc lập して quy cách hóa されてきた. しかし hiện hành の3バージョン ( v1.1, v2, v3 ) が cộng thông のセマンティクスを duy trì していたことから, これを độc lập した quy cách とする hoạt động が thôi tiến され hiện tại の hình になっている[17].
Phái sinh ・拡 trương プロトコル[Biên tập]
HTTPSのほか, dĩ hạ のようなHTTPのセマンティクスを lợi dụng するプロトコル, HTTPの cấu văn を nguyên とするプロトコルなどが tồn tại する. Dĩ hạ はその nhất lệ である.
- WebDAV:HTTP thượng でファイル転 tống を thật hiện するプロトコル.
- WebSocket:Song phương hướng thông tín プロトコル.
- Internet Printing Protocol(IPP): プリンタの chế ngự と ấn xoát データの vân tống を 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 を hữu するプロトコル.
なお, このようなHTTPの lợi dụng に quan する văn thư としてRFC9205Building Protocols with HTTP (BCP 56)が tồn tại する.
Cước chú[Biên tập]
- ^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.
- ^The HTTP Protocol As Implemented In W3
- ^Sebastian Anthony (2012 niên 3 nguyệt 28 nhật ). “S&M vs. SPDY: Microsoft and Google battle over the future of HTTP 2.0”.ExtremeTech.2014 niên 9 nguyệt 23 nhậtDuyệt lãm.
- ^Jerome Louvel (2011 niên 10 nguyệt 6 nhật ). “Can the rise of SPDY threaten HTTP?”.Restlet.2014 niên 9 nguyệt 23 nhậtDuyệt lãm.
- ^“Gigazine『UDPベースの “HTTP-over-QUIC” が tân HTTPバージョン “HTTP/3” に danh xưng 変 canh される』”.GIGAZINE (2018 niên 11 nguyệt 14 nhật ).2018 niên 11 nguyệt 14 nhậtDuyệt lãm.
- ^IETF Meetingの tư liêu スライド
- ^“QUICの thoại (QUICプロトコルの giản 単なまとめ)”.ASnoKaze blog(2018 niên 10 nguyệt 31 nhật ).2019 niên 5 nguyệt 12 nhậtDuyệt lãm. “Hậu thuật のストリームの quản lý がQUICレイヤに di り, それにあわせフレームの変 canh やQUICストリームの lợi dụng phương pháp の định nghĩa”
- ^“QUICの thoại (QUICプロトコルの giản 単なまとめ)”.ASnoKaze blog(2018 niên 10 nguyệt 31 nhật ).2019 niên 5 nguyệt 12 nhậtDuyệt lãm. “ヘッドオブラインブロッキング tị けるために, HPACKをQUIC dụng に cải lương したQPACKを dụng いる”
- ^“RFC[https://datatracker.ietf.org/doc/html/rfc2817 2817 Upgrading to TLS Within HTTP/1.1]” (2000 niên 5 nguyệt ).2019 niên 4 nguyệt 26 nhậtDuyệ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.”
- ^“RFC[https://datatracker.ietf.org/doc/html/rfc7230 7230 Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing]” (2014 niên 6 nguyệt ).2019 niên 4 nguyệt 26 nhậtDuyệ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.”
- ^Hypertext Transfer Protocol (HTTP) Method Registry
- ^RFC9110,6. Message Abstraction
- ^HTTP Content Coding Registry
- ^“RFC[https://datatracker.ietf.org/doc/html/rfc1864 1864 The Content-MD5 Header Field]” ( anh ngữ ).Internet Engineering Task Force(1995 niên 10 nguyệt ).2021 niên 1 nguyệt 30 nhậtDuyệ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.”
- ^“RFC[https://datatracker.ietf.org/doc/html/rfc7231 7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]” ( anh ngữ ).Internet Engineering Task Force(2014 niên 6 nguyệt ).2021 niên 1 nguyệt 30 nhậtDuyệt lãm. “The Content-MD5 header field has been removed because it was inconsistently implemented with respect to partial responses.”
- ^『HTTPプロトコル―セキュア&スケーラブルなWeb khai phát 』 Stephen Thomas trứ, cát tây trọng phu 訳, ソフトバンクパブリッシング[Yếu ページ phiên hào]
- ^“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への cải xưng ~”.Nhật bổn ネットワークインフォメーションセンター(2018 niên 12 nguyệt 13 nhật ).2021 niên 6 nguyệt 28 nhậtDuyệt lãm.
Quan liên hạng mục[Biên tập]
- HTTP/2
- HTTPステータスコード
- FTP
- WebDAV
- Webサーバ
- ウェブブラウザ
- アプリケーションサーバ
- Representational State Transfer(REST)
- HTTPヘッダ・インジェクション
- Hyper Text Coffee Pot Control Protocol
- バーチャルホスト
Ngoại bộ リンク[Biên tập]
- RFC9110- HTTP Semantics
- RFC9111- HTTP Caching
- RFC9112- HTTP/1.1
- RFC9113- HTTP/2
- RFC9114- HTTP/3
- RFC9205- Building Protocols with HTTP
- HTTP に cơ づくプロトコルの trúc き phương( phi công thức な nhật bổn ngữ 訳 )
Dĩ hạ は cựu thức であり phi thôi thưởng となった sĩ dạng
- RFC7540- Hypertext Transfer Protocol Version 2 (HTTP/2)
- RFC7540 nhật bổn ngữ 訳( phi công thức )
- RFC7230- Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
- RFC 7230 — HTTP/1.1: Message Syntax and Routing ( nhật bổn ngữ 訳 )( phi công thức )
- RFC7231- Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
- RFC 7231 — HTTP/1.1: Semantics and Content ( nhật bổn ngữ 訳 )( phi công thức )
- RFC7232- Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests
- RFC 7232 — HTTP/1.1: Conditional Requests ( nhật bổn ngữ 訳 )( phi công thức )
- RFC7233- Hypertext Transfer Protocol (HTTP/1.1): Range Requests
- RFC 7233 — HTTP/1.1: Range Requests ( nhật bổn ngữ 訳 )( phi công thức )
- RFC7234- Hypertext Transfer Protocol (HTTP/1.1): Caching
- RFC 7234 — HTTP/1.1: Caching ( nhật bổn ngữ 訳 )( phi công thức )
- RFC7235- Hypertext Transfer Protocol (HTTP/1.1): Authentication
- RFC 7235 — HTTP/1.1: Authentication ( nhật bổn ngữ 訳 )( phi công thức )
- RFC2818- HTTP Over TLS
- HTTP Over TLS(IPAによる phi công thức な nhật bổn ngữ 訳 )
- RFC2817- Upgrading to TLS Within HTTP/1.1
- RFC2616- HTTP/1.1 (RFC2068の cải đính bản,RFC7230からRFC7235によって obsolete )
- RFC2068- HTTP/1.1 ( sơ bản,RFC2616によって obsolete )
- TS X 0085:2004- ハイパテキスト転 tống プロトコル HTTP/1.1 nhật bổn tiêu chuẩn sĩ dạng thư (TS X 0085:2004)
- RFC1945- HTTP/1.0
- The HTTP Protocol As Implemented In W3- HTTP/0.9
その tha