Network Working Group R. fieldingrequest for comments: 2616 UC runtime: 2068 J. gettyscategory: Standards track Compaq/w3cj. mogulcompaqh. frystykw3c/mitl. scheduler. leachmicrosoftt. Berners-LeeW3C/mitjune 1999
Hypertext Transfer Protocol -- HTTP/1.1 Hypertext Transfer Protocol -- HTTP/1.1 Status of this memo purpose of this article
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. please refer to the current edition of the "Internet official protocol standards" (Std 1) for the Standardization state and status of this Protocol. distribution of this memo is unlimited.
This article introduces the internet standard specification. Please reference "Internet official protocol standards" (Std 1) as the Standard Specification for this Protocol. This article can be reproduced at will.
Copyright Notice:
Copyright (c) the Internet Society (1999). All rights reserved.
Abstract Introduction
The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. it is a generic, stateless, protocol which can be used for processing tasks beyond its use for Hypertext, such as name servers and distributed object management systems, through extension of its request methods, error Codes and headers [47]. A feature of HTTP is the typing and negotiation of Data Representation, allowing systems to be built independently of the data being transferred.
Hypertext Transfer Protocol (HTTP) is an application layer protocol for distributed and collaborative multimedia information systems. In addition to the application layer protocol that is often used for Hypertext Transfer, HTTP can also be used for request errors.Code, And supports naming services and distributed object management systems without borders with header extensions. Http features data representation negotiation, which allows system building to be independent of transmitted data.
HTTP has been in use by the world-wide web global information initiative since 1990. this specification defines the Protocol referred to as "HTTP/1.1", and is an update to RFC 2068 [33].
HTTP was first applied to WWW in 1990. This specification defines the HTTP/1.1 specification, which was recently updated in RFC 2068
Table of contents
-
- Introduction... 1 Preface
- Purpose... 1.1 Objective
- Requirements... 1.2 requirements
- Terminology... 1.3 terms
- Overall operation... 1.4 Overview
-
- Notational conventions and generic grammar... 2 General protocols and syntax
- Augmented BNF... 2.1
- Basic rules... 2.2 Basic Rules
- Protocol parameters... 3 protocol parameters
-
- HTTP Version... 3.1 HTTP Version
-
- Uniform resource identifiers... 3.2 unified Resource Identifier
- General syntax... 3.2.1 General syntax
- Http url... 3.2.2 HTTP URL
- Uri comparison... 3.2.3 URT comparison
- Date/time formats... 3.3 Date and Time Format
- Full date... 3.3.1
- Delta seconds... 3.3.2
-
- Character sets... 3.4 Character Set
- Missing charset... 3.4.1 missing character set
-
- Content codings... 3.5 Content Encoding
-
- Transfer codings... 3.6 escape Encoding
- Chunked transfer coding... 3.6.1 block escape code
-
- Media types... 3.7 media type
- Canonicalization and text defaults... 3.7.1 standardization and default body
- Multipart types... 3.7.2 multi-part type
-
- Product tokens... 3.8 product logo
-
- Quality Values... 3.9 Quality Value
-
- Language tags... 3.10 language identifier
-
- Entity tags... 3.11 entity ID
-
- Range units... 3.12 range Unit
- HTTP message... 4 HTTP message
- Message types... 4.1 Message Type
- Message Headers... 4.2 Message Header
- Message Body... 4.3 Message Body
- Message length... 4.4 message length
- General header fields... 4.5 General header domain
-
- Request... 5 request
- Request-line... 5.1 request line
- Method... 5.1.1 Method
- Request-Uri... 5.1.2 request-Uri
- The resource identified by a request... 5.2 Resource ID of the request
- Request header fields... 5.3 Request Header domain
-
- Response... 6 response (response)
- Status-line... 6.1 status line
- Status Code and reason phrase... 6.1.1 status code and Explanation
- Response header fields... 6.2 response header field
- Entity... 7 entity
- Entity header fields... 7.1 entity header domain
- Entity body... 7.2 entity body
- Type... 7.2.1 type
- Entity length... 7.2.2 entity Length
-
- Connections... 8 connection
- Persistent connections... 8.1 fixed connection
- Purpose... 8.1.1 objective
- Overall operation... 8.1.2 overview.
- Proxy servers... 8.1.3 Proxy Server
- Practical considerations... 8.1.4 practical elements
- Message transmission requirements... 8.2 message transmission requirements
- Persistent connections and Flow Control... 8.2.1 fixed connection and Flow Control
- Monitoring connections for error status messages... 8.2.2 detect connection to get error status messages
- Use of the 100 (CONTINUE) status... 8.2.3 practical 100 (CONTINUE) Status
- Client behavior if Server prematurely closes connection... 8.2.4 The act of prematurely disabling the control on the Server Client
- Method definitions... 9 method definition
- Safe and idempotent methods... 9.1 Security Power Equality Method
- Safe Methods... 9.1.1 Security Method
- Idempotent methods... 9.1.2 idempotent Method
- Options... 9.2 options
- Get... 9.3 get
- Head... 9.4 head
- Post... 9.5 Post
- Put... 9.6 put
- Delete... 9.7 Delete
- Trace... 9.8 trace
- Connect... 9.9 connect
- Status code definitions... 10 Status Code definition
-
- Informational 1xx... 10.1 information 1xx
- 100 continue... 10.1.1 100 continue
- 101 switching protocols... 10.1.2 101 switch protocol
- Successful 2XX... 10.2 successful 2XX
- 200 OK... 10.2.1 200 OK
- 201 created... 10.2.2 201 create
- 202 accepted... 10.2.3 202 accept
- 203 non-authoritative information... 10.2.4 203 unofficial news
- 204 NO content .... 10.2.5 204 NO content
- 205 reset content... 10.2.6 205 reset content
- 206 partial content... 10.2.7 Part 1 (incomplete content ?)
-
- Redirection 3xx... 10.3 redirection 3xx
- 300 multiple choices... 10.3.1 300 multiple options
- 301 moved permanently... 10.3.2 301 permanent movement
- 302 found... 10.3.3 302 found
- 303 see other... 10.3.4 303 switch to other
- 304 not modified... 10.3.5 304 not modified
- 305 use proxy... 10.3.6 305 utility proxy
- 306 (unused)... 10.3.7 306 not used
- 307 temporary redirect... 10.3.8 307 temporary redirection
- Client error 4xx... 10.4 client Error
- 400 bad request... 10.4.1 400 Error request
-
- 401 unauthorized... 10.4.2 401 Illegal Request (no permission)
-
- 402 payment required... 10.4.3 402 payment required ???
-
- 403 forbidden... 10.4.4 403 Forbidden
-
- 404 Not found... 10.4.5 404 not found
-
- 405 method not allowed... 10.4.6 405 method not allowed
-
- 406 not acceptable... 10.4.7 406 unacceptable
-
- 407 proxy authentication required... 10.4.8 407 requires proxy Permissions
-
- 408 request timeout... 10.4.9 408 request timeout
-
- 409 conflict... 10.4.10 409 conflict
-
- 410 gone... 10.4.11 410 gone
-
- 411 length required... 10.4.12 411 unknown length
-
- 412 precondition failed... 10.4.13 412 failed to prepare conditions
-
- 413 Request Entity too large... 10.4.14 413 the Request Entity is too large
- 414 request-URI Too long... 10.4.15 414 the request URI is too long
-
- 415 unsupported media type... 10.4.16 415 unsupported media type
-
- 416 requested range not satisfiable... 10.4.17 416 not within the request range
-
- 417 expectation failed... 10.4.18 417 expectation failed
-
- Server Error 5xx... 10.5 server error 5xx
- 500 internal server error... 10.5.1 500 internal service error
- 501 not implemented... 10.5.2 501 not applied
- 502 Bad Gateway... 10.5.3 502 Gateway error
- 503 service unavailable... 10.5.4 503 service invalid
- 504 gateway timeout... 10.5.5 504 gateway timeout
- 505 HTTP Version Not Supported... 10.5.6 505 HTTP Version not supported.
-
- Access authentication... 11 Access Verification
- Content negotiation... 12 content negotiation
- Server-driven negotiation... 12.1 server-side drive negotiation
- Agent-driven negotiation... 12.2 client-driven negotiation
- Transparent negotiation... 12.3 transparent negotiation
- Caching in HTTP... 13 cache in HTTP
-
- @ Missing @ packet loss
- Cache correctness... 13.1.1 cache Verification
- Warnings... 13.1.2 warning
- Cache-control mechanisms... 13.1.3 Cache Control Mechanism
- Explicit User Agent warnings... 13.1.4 explicit user segment warning
- Exceptions tions to the Rules and warnings... 13.1.5 exceptions of rules and warnings
- Client-Controlled behavior... 13.1.6 behavior controlled by the client
- Expiration model... 13.2 termination Mode
- Server-specified expiration... 13.2.1 server termination
- Heuristic expiration... 13.2.2 try to terminate
- Age calculations... 13.2.3 life computing
- Expiration calculations... 13.2.4 terminate Calculation
- Disambiguating expiration values... 13.2.5 eliminate the termination value of Ambiguity
- Disambiguating multiple responses... 13.2.6 remove multiple response of Ambiguity
-
- Validation model... 13.3 Verification Mode
- Last-modified dates... 13.3.1 final verification time
- Entity tag cache validators... 13.3.2 entity identity cache Verification
- Weak and strong validators... 13.3.3 wake up and strong verification
- Rules for when to use entity tags and last-modified dates... 13.3.4 when to use the entity identification and Last modified Date rules
- Non-Validating conditionals... 13.3.5 non-validation criteria
-
- Response cacheability... 13.4 cache response
- Constructing responses from caches... 13.5 construct a response from the cache
- End-to-end and hop-by-hop headers... 13.5.1 end-to-end and hop-by Headers
- Non-modifiable headers... 13.5.2 unmodified Headers
- Combining headers... 13.5.3 combination Headers
- Combining byte ranges... 13.5.4 combination byte range
-
- Caching negotiated responses... 13.6 cache negotiated response
-
- Shared and non-shared caches... 13.7 shared and non-shared Cache
-
- Errors or incomplete response cache behavior... 13.8 error and unfinished response cache behavior
-
- Side effects of get and head... 13.9 edge effects of get and head
-
- Invalidation after updates or deletions... 13.10 expired after update and Deletion
-
- Write-through mandatory... 13.11 mandatory write
-
- Cache replacement... 13.12 cache replacement.
-
- History lists... 13.13 history
- Header field definitions... 14 header field Definition
- Accept... 14.1 receiving
-
- Accept-charset... 14.2
-
- Accept-encoding... 14.3
-
- Accept-language... 14.4
-
- Access-ranges... 14.5
-
- Age .... 14.6
-
- Allow... 14.7
-
- Authorization... 14.8
-
- Cache-control... 14.9 Cache Control
- What is cacheable... 14.9.1 what can be cached.
- What may be stored by caches... 14.9.2 what can be stored in cache?
- Modifications of the basic expiration mechanism... 14.9.3 modification of the basic termination mechanism
- Cache revalidation and reload controls... 14.9.4 cache re-verification and load control
- No-transform directive... 14.9.5
- Cache Control extensions... 14.9.6 Cache Control Extension
-
- Connection... 14.10 connection
-
- Content-encoding... 14.11 content-Encoding
-
- Content-language... 14.12 content-language
- Content-Length... 14.13 Content-Length
-
- Content-location... 14.14 content-region
-
- Content-MD5... 14.15 content-MD5 Encryption
-
- Content-range... 14.16 content-Range
-
- Content-Type... 14.17 Content-Type
-
- Date... 14.18 time
- Clockless origin server operation... 14.18.1
-
- Etag... 14.19
-
- CT... 14.20
-
- Expires... 14.21
-
- From... 14.22
-
- Host... 14.23 host
-
- If-match... 14.24 if match
-
- If-modified-since .... 14.25
-
- If-None-match... 14.26
-
- If-range… 14.27
-
- If-unmodified-since .... 14.28
-
- Last-modified .... 14.29
-
- Location... 14.30
-
- Max-forward... 14.31
- Pragma... 14.32
-
- Proxy-authenticate... 14.33
-
- Proxy-authorization... 14.34
-
- Range... 14.35
- Byte ranges... 14.35.1
- Range retrieval requests... 14.35.2
-
- Referer... 14.36
-
- Retry-after .... 14.37
-
- Server... 14.38
-
- Te... 14.39
-
- Trailer... 14.40
-
- Transfer-encoding .... 14.41
-
- Upgrade... 14.42
-
- User-Agent... 14.43
-
- Vary... 14.44
-
- Via… 14.45
-
- Warning... 14.46
-
- WWW-authenticate... 14.47
- Security considerations... 15
- Personal information... 15.1
- Abuse of server log information... 15.1.1
- Transfer of sensitive information... 15.1.2
- Encoding sensitive information in Uri's... 15.1.3
- Privacy issues connected to accept headers... 15.1.4
- Attacks Based on file and path names... 15.2
- DNS spoofing... 15.3
- Location headers and spoofing... 15.4
- Content-disposition issues... 15.5
- Authentication credentials and idle clients... 15.6
- Proxies and caching... 15.7
- Denial of Service attacks on proxies... 15.7.1
-
- Acknowledgments... 16
-
- References... 17
-
- Authors 'addresses... 18
- Appendices... 19
-
- Internet media type message/HTTP and application/HTTP... 19.1
- Internet media type multipart/byteranges... 19.2
-
- Tolerant applications... 19.3
-
- Differences between HTTP entities and RFC 2045 entities... 19.4
- Mime-version... 19.4.1
- Conversion to canonical form... 19.4.2
- Conversion of date formats... 19.4.3
- Introduction of content-encoding... 19.4.4 Content Encoding Introduction
- NO content-transfer-encoding... 19.4.5 NO content Transfer Encoding
- Introduction to introduction of transfer-encoding... 19.4.6 escape code
- MHTML and line length limitations... 19.4.7 mhtml h hunger row length limit
-
- Additional features... 19.5 additional features
- Content-disposition... 19.5.1 content-Disposition
-
- Compatibility with previous versions... 19.6
- Changes from HTTP/1... 19.6.1
- Compatibility with HTTP/1... 19.6.2
- Changes from RFC 2068... 19.6.3
- Index... 20 Index
-
- Full copyright statement... 21
Derived from
HTTP/1.1 , Internet RFC 2616, Fielding, et al.
Using rfc2html revision: 1.8 Date: 2004/09/01 13:21:38 by Dan Connolly