Hypertext Transfer Protocol
Hypertext Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル,HTTP) はアプリ gian コネクション thượng の リクエスト/レスポンス hình ・ステートレス・メッセージ chỉ hướngThông tín プロトコルである[1].
Thông tín プロトコル | |
Mục đích | ハイパーテキストなど の 転 đưa |
---|---|
Khai phát giả | |
Dẫn vào | 1991 năm |
Đẻ ra trước | HTTP/2,HTTP/3,WebDAV |
OSI giai tầng | アプリケーション tầng |
ポート | 80 |
RFC |
Điểm chính
Biên tậpTCPやQUICはアプリケーション 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 になった.
- NNTPやSMTPの ような 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/2やHTTP/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ỳ す.
- TCPのポート phiên hiệu80をデフォルトとして sử dụng する ( HTTP/0.9〜1.1とHTTP/2 の trường hợp ).
- TLSで ám hiệu hóa され, セキュリティを bảo đảm したHTTPは,HTTPSと hô ばれる ( httpsは thật tế にはURIスキーム の 1つであり, thật tế の プロトコルにはHTTP over SSL/TLSまたはHTTP/3が dùng いられる ).
- HTTP は cơ bản にサーバが 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によって dẫn vào された. 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に thuộc する hắn の nhiều く の プロトコルと cùng じである ( HTTP/0.9〜1.1 の trường hợp ).
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 れあがった.
HTTP/0.9
Biên tập1991 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
HTTP/1.0
Biên tập1996 năm5 nguyệtにRFC1945として 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
- HTTP/1.1 の リクエスト
-
GET/index.htmlHTTP/1.1 Host:foo.example
HTTP/1.1
Biên tập1997 năm1 nguyệtにRFC2068として 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/2
Biên tậpHTTP/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/3
Biên tậpHTTP-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],ヘッドオブラインブロッキングを 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ậpThông tín の bắt đầu
Biên tậpHắ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ậpHTTPでは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 の リソースを lấy り ra す. HTTP の nhất も cơ bản な động tác で, HTTP/0.9では duy nhất の メソッド.
- POST
- “POST (HTTP)”も tham chiếu
- 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 するも の や,RFC5789のPATCHメソッドなどがある.
サーバ の liền huề
Biên tậpバーチャルホスト
Biên tập1つ の サーバーで 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ậpHTTPメッセージ
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 まれる | ○ | ○ |
ヘッダ | Đ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
- Kỹ càng tỉ mỉ は “HTTP cookie”を tham chiếu
- クライアントが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 いられる.“if văn”も tham chiếu
- Lợi dụng giả: AがHTTP の ký sự を lấy được.
ETag
は1234. - Lợi dụng giả: BがHTTP の ký sự を lấy được.
ETag
は1234. - 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í. - Lợi dụng giả: AがHTTP の ký sự を biên tập.
ETag
は1256になる. - 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はマッチせず. - サーバは 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 する.
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 chứng thực
Biên tậpHTTP の trung で chứng thực を hành う sĩ tổ みが dụng ý されている.
Basic chứng thực
Biên tậpHTTP/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ậpQuy cách
Biên tậpHTTPは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ậpHTTPS の ほか, 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- ^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 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.
- ^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.
- ^“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.
- ^IETF Meeting の tư liệu スライド
- ^“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”
- ^“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 いる”
- ^“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.”
- ^“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.”
- ^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]” ( 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.”
- ^“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.”
- ^『HTTPプロトコル―セキュア&スケーラブルなWeb khai phát 』 Stephen Thomas, cát tây trọng phu 訳, ソフトバンクパブリッシング[Muốn ページ phiên hiệu]
- ^“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ậpPhần ngoài リンク
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ưới は kiểu cũ であり phi đẩy 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の đặt lại bản,RFC7230からRFC7235によって obsolete )
- RFC2068- HTTP/1.1 ( sơ bản,RFC2616によって obsolete )
- TS X 0085:2004- ハイパテキスト転 đưa プロトコル 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
そ の hắn