`Request for Comments: 2616
`Obsoletes: 2068
`Category: Standards Track
`
`R. Fielding
`UC Irvine
`J. Gettys
`Compaq/W3C
`J. C. Mogul
`Compaq
`H. Frystyk
`W3C/MIT
`L. Masinter
`Xerox
`P. Leach
`Microsoft
`T. Berners-Lee
`W3C/MIT
`June, 1999
`
`Hypertext Transfer Protocol -- HTTP/1.1
`Status of this Memo
`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.
`Copyright Notice
`Copyright (C) The Internet Society (1999). All Rights Reserved.
`Abstract
`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 many 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.
`
`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].
`
`Fielding, et al
`
`Standards Track
`
`[Page 1]
`
`Exhibit 2003
`
`
`
`RFC 2616
`
`HTTP/1.1
`
`June, 1999
`
`Table of Contents
`
`HYPERTEXT TRANSFER PROTOCOL -- HTTP/1.1.................................................1
`
`Status of this Memo .......................................................................................................................................1
`
`Copyright Notice............................................................................................................................................1
`
`Abstract ..........................................................................................................................................................1
`
`Table of Contents...........................................................................................................................................2
`
`1
`
`2
`
`3
`
`Introduction .......................................................................................................................................7
`Purpose ........................................................................................................................................7
`Requirements ...............................................................................................................................7
`Terminology ................................................................................................................................8
`Overall Operation ......................................................................................................................10
`
`Notational Conventions and Generic Grammar ...........................................................................11
`Augmented BNF ........................................................................................................................11
`Basic Rules ................................................................................................................................12
`
`1.1
`1.2
`1.3
`1.4
`
`2.1
`2.2
`
`Protocol Parameters ........................................................................................................................13
`HTTP Version ...........................................................................................................................13
`Uniform Resource Identifiers.....................................................................................................14
`General Syntax...................................................................................................................14
`http URL ............................................................................................................................14
`URI Comparison ................................................................................................................15
`Date/Time Formats ....................................................................................................................15
`Full Date ............................................................................................................................15
`Delta Seconds ....................................................................................................................16
`Character Sets ............................................................................................................................16
`Missing Charset .................................................................................................................16
`Content Codings ........................................................................................................................16
`Transfer Codings .......................................................................................................................17
`Chunked Transfer Coding..................................................................................................18
`Media Types ..............................................................................................................................18
`Canonicalization and Text Defaults ...................................................................................19
`Multipart Types..................................................................................................................19
`Product Tokens ..........................................................................................................................20
`Quality Values ...........................................................................................................................20
`Language Tags...........................................................................................................................20
`Entity Tags.................................................................................................................................20
`Range Units ...............................................................................................................................21
`
`3.1
`3.2
`3.2.1
`3.2.2
`3.2.3
`3.3
`3.3.1
`3.3.2
`3.4
`3.4.1
`3.5
`3.6
`3.6.1
`3.7
`3.7.1
`3.7.2
`3.8
`3.9
`3.10
`3.11
`3.12
`
`4
`
`HTTP Message.................................................................................................................................21
`Message Types...........................................................................................................................21
`Message Headers .......................................................................................................................21
`Message Body............................................................................................................................22
`Message Length .........................................................................................................................23
`General Header Fields ...............................................................................................................23
`
`4.1
`4.2
`4.3
`4.4
`4.5
`
`Fielding, et al
`
`Standards Track
`
`[Page 2]
`
`
`
`RFC 2616
`
`HTTP/1.1
`
`June, 1999
`
`5
`
`6
`
`7
`
`8
`
`9
`
`Request .............................................................................................................................................24
`Request-Line..............................................................................................................................24
`Method...............................................................................................................................24
`Request-URI ......................................................................................................................24
`The Resource Identified by a Request .......................................................................................25
`Request Header Fields ...............................................................................................................26
`
`5.1
`5.1.1
`5.1.2
`5.2
`5.3
`
`Response ...........................................................................................................................................26
`Status-Line.................................................................................................................................26
`Status Code and Reason Phrase .........................................................................................26
`Response Header Fields.............................................................................................................28
`
`6.1
`6.1.1
`6.2
`
`Entity ................................................................................................................................................28
`Entity Header Fields ..................................................................................................................28
`Entity Body................................................................................................................................29
`Type ...................................................................................................................................29
`Entity Length .....................................................................................................................29
`
`7.1
`7.2
`7.2.1
`7.2.2
`
`Connections ......................................................................................................................................29
`Persistent Connections...............................................................................................................29
`Purpose ..............................................................................................................................29
`Overall Operation ..............................................................................................................30
`Proxy Servers.....................................................................................................................31
`Practical Considerations.....................................................................................................31
`Message Transmission Requirements ........................................................................................31
`Persistent Connections and Flow Control ..........................................................................31
`Monitoring Connections for Error Status Messages ..........................................................31
`Use of the 100 (Continue) Status .......................................................................................32
`Client Behavior if Server Prematurely Closes Connection ................................................33
`
`8.1
`8.1.1
`8.1.2
`8.1.3
`8.1.4
`8.2
`8.2.1
`8.2.2
`8.2.3
`8.2.4
`
`Method Definitions ..........................................................................................................................33
`Safe and Idempotent Methods ...................................................................................................33
`Safe Methods .....................................................................................................................33
`Idempotent Methods ..........................................................................................................34
`OPTIONS ..................................................................................................................................34
`GET ...........................................................................................................................................35
`HEAD ........................................................................................................................................35
`POST .........................................................................................................................................35
`PUT ...........................................................................................................................................36
`DELETE ....................................................................................................................................36
`TRACE ......................................................................................................................................37
`CONNECT ................................................................................................................................37
`
`9.1
`9.1.1
`9.1.2
`9.2
`9.3
`9.4
`9.5
`9.6
`9.7
`9.8
`9.9
`
`10
`10.1
`10.1.1
`10.1.2
`10.2
`10.2.1
`10.2.2
`10.2.3
`10.2.4
`10.2.5
`10.2.6
`10.2.7
`
`Status Code Definitions ...............................................................................................................37
`Informational 1xx ......................................................................................................................37
`100 Continue......................................................................................................................37
`101 Switching Protocols ....................................................................................................38
`Successful 2xx ...........................................................................................................................38
`200 OK ..............................................................................................................................38
`201 Created........................................................................................................................38
`202 Accepted .....................................................................................................................38
`203 Non-Authoritative Information ...................................................................................39
`204 No Content..................................................................................................................39
`205 Reset Content..............................................................................................................39
`206 Partial Content ............................................................................................................39
`
`Fielding, et al
`
`Standards Track
`
`[Page 3]
`
`
`
`RFC 2616
`
`HTTP/1.1
`
`June, 1999
`
`Redirection 3xx..........................................................................................................................40
`10.3
`300 Multiple Choices.........................................................................................................40
`10.3.1
`301 Moved Permanently ....................................................................................................40
`10.3.2
`302 Found ..........................................................................................................................40
`10.3.3
`303 See Other ....................................................................................................................41
`10.3.4
`304 Not Modified ..............................................................................................................41
`10.3.5
`305 Use Proxy....................................................................................................................41
`10.3.6
`306 (Unused) .....................................................................................................................41
`10.3.7
`307 Temporary Redirect ....................................................................................................42
`10.3.8
`Client Error 4xx .........................................................................................................................42
`10.4
`400 Bad Request ................................................................................................................42
`10.4.1
`401 Unauthorized...............................................................................................................42
`10.4.2
`402 Payment Required.......................................................................................................42
`10.4.3
`403 Forbidden....................................................................................................................42
`10.4.4
`404 Not Found ...................................................................................................................43
`10.4.5
`405 Method Not Allowed ..................................................................................................43
`10.4.6
`406 Not Acceptable ...........................................................................................................43
`10.4.7
`407 Proxy Authentication Required...................................................................................43
`10.4.8
`408 Request Timeout .........................................................................................................43
`10.4.9
`409 Conflict .......................................................................................................................43
`10.4.10
`410 Gone ...........................................................................................................................44
`10.4.11
`411 Length Required .........................................................................................................44
`10.4.12
`412 Precondition Failed.....................................................................................................44
`10.4.13
`413 Request Entity Too Large...........................................................................................44
`10.4.14
`414 Request-URI Too Long ..............................................................................................44
`10.4.15
`415 Unsupported Media Type ...........................................................................................44
`10.4.16
`416 Requested Range Not Satisfiable................................................................................44
`10.4.17
`417 Expectation Failed ......................................................................................................45
`10.4.18
`10.5
`Server Error 5xx ........................................................................................................................45
`10.5.1
`500 Internal Server Error ...................................................................................................45
`10.5.2
`501 Not Implemented ........................................................................................................45
`10.5.3
`502 Bad Gateway...............................................................................................................45
`10.5.4
`503 Service Unavailable ....................................................................................................45
`10.5.5
`504 Gateway Timeout........................................................................................................45
`10.5.6
`505 HTTP Version Not Supported ....................................................................................45
`
`11
`
`Access Authentication..................................................................................................................46
`
`12
`12.1
`12.2
`12.3
`
`Content Negotiation.....................................................................................................................46
`Server-driven Negotiation..........................................................................................................46
`Agent-driven Negotiation ..........................................................................................................47
`Transparent Negotiation ............................................................................................................47
`
`13
`
`Caching in HTTP.........................................................................................................................47
`13.1.1
`Cache Correctness..............................................................................................................48
`13.1.2
`Warnings............................................................................................................................49
`13.1.3
`Cache-control Mechanisms................................................................................................49
`13.1.4
`Explicit User Agent Warnings ...........................................................................................49
`13.1.5
`Exceptions to the Rules and Warnings...............................................................................50
`13.1.6
`Client-controlled Behavior.................................................................................................50
`13.2
`Expiration Model.......................................................................................................................50
`13.2.1
`Server-Specified Expiration...............................................................................................50
`13.2.2
`Heuristic Expiration...........................................................................................................51
`13.2.3
`Age Calculations................................................................................................................51
`13.2.4
`Expiration Calculations......................................................................................................52
`
`Fielding, et al
`
`Standards Track
`
`[Page 4]
`
`
`
`RFC 2616
`
`HTTP/1.1
`
`June, 1999
`
`13.2.5
`13.2.6
`13.3
`13.3.1
`13.3.2
`13.3.3
`13.3.4
`13.3.5
`13.4
`13.5
`13.5.1
`13.5.2
`13.5.3
`13.5.4
`13.6
`13.7
`13.8
`13.9
`13.10
`13.11
`13.12
`13.13
`
`Disambiguating Expiration Values ....................................................................................53
`Disambiguating Multiple Responses..................................................................................53
`Validation Model.......................................................................................................................53
`Last-Modified Dates ..........................................................................................................54
`Entity Tag Cache Validators ..............................................................................................54
`Weak and Strong Validators ..............................................................................................54
`Rules for When to Use Entity Tags and Last-Modified Dates ...........................................56
`Non-validating Conditionals ..............................................................................................57
`Response Cacheability...............................................................................................................57
`Constructing Responses From Caches .......................................................................................57
`End-to-end and Hop-by-hop Headers ................................................................................58
`Non-modifiable Headers....................................................................................................58
`Combining Headers ...........................................................................................................59
`Combining Byte Ranges ....................................................................................................59
`Caching Negotiated Responses..................................................................................................60
`Shared and Non-Shared Caches.................................................................................................60
`Errors or Incomplete Response Cache Behavior .......................................................................61
`Side Effects of GET and HEAD ................................................................................................61
`Invalidation After Updates or Deletions ................................................................................61
`Write-Through Mandatory.....................................................................................................61
`Cache Replacement................................................................................................................62
`History Lists...........................................................................................................................62
`
`14
`14.1
`14.2
`14.3
`14.4
`14.5
`14.6
`14.7
`14.8
`14.9
`14.9.1
`14.9.2
`14.9.3
`14.9.4
`14.9.5
`14.9.6
`14.10
`14.11
`14.12
`14.13
`14.14
`14.15
`14.16
`14.17
`14.18
`14.18.1
`14.19
`14.20
`14.21
`14.22
`14.23
`14.24
`
`Header Field Definitions .............................................................................................................62
`Accept........................................................................................................................................62
`Accept-Charset...........................................................................................................................64
`Accept-Encoding .......................................................................................................................64
`Accept-Language .......................................................................................................................65
`Accept-Ranges ...........................................................................................................................66
`Age.............................................................................................................................................66
`Allow .........................................................................................................................................66
`Authorization .............................................................................................................................66
`Cache-Control............................................................................................................................67
`What is Cacheable .............................................................................................................68
`What May be Stored by Caches.........................................................................................69
`Modifications of the Basic Expiration Mechanism............................................................69
`Cache Revalidation and Reload Controls...........................................................................70
`No-Transform Directive.....................................................................................................72
`Cache Control Extensions..................................................................................................72
`Connection.............................................................................................................................72
`Content-Encoding ..................................................................................................................73
`Content-Language..................................................................................................................73
`Content-Length ......................................................................................................................74
`Content-Location ...................................................................................................................74
`Content-MD5 .........................................................................................................................75
`Content-Range .......................................................................................................................75
`Content-Type .........................................................................................................................77
`Date........................................................................................................................................77
`Clockless Origin Server Operation ....................................................................................78
`ETag ......................................................................................................................................78
`Expect ....................................................................................................................................78
`Expires ...................................................................................................................................78
`From.......................................................................................................................................79
`Host........................................................................................................................................79
`If-Match .................................................................................................................................80
`
`Fielding, et al
`
`Standards Track
`
`[Page 5]
`
`
`
`RFC 2616
`
`HTTP/1.1
`
`June, 1999
`
`14.25
`14.26
`14.27
`14.28
`14.29
`14.30
`14.31
`14.32
`14.33
`14.34
`14.35
`14.35.1
`14.35.2
`14.36
`14.37
`14.38
`14.39
`14.40
`14.41
`14.42
`14.43
`14.44
`14.45
`14.46
`14.47
`
`If-Modified-Since ..................................................................................................................80
`If-None-Match .......................................................................................................................81
`If-Range .................................................................................................................................82
`If-Unmodified-Since ..............................................................................................................82
`Last-Modified ........................................................................................................................83
`Location .................................................................................................................................83
`Max-Forwards........................................................................................................................83
`Pragma ...................................................................................................................................84
`Proxy-Authenticate ................................................................................................................84
`Proxy-Authorization ..............................................................................................................85
`Range .....................................................................................................................................85
`Byte Ranges.......................................................................................................................85
`Range Retrieval Requests ..................................................................................................86
`Referer ...................................................................................................................................86
`Retry-After.............................................................................................................................87
`Server.....................................................................................................................................87
`TE ..........................................................................................................................................87
`Trailer ....................................................................................................................................88
`Transfer-Encoding .................................................................................................................88
`Upgrade .................................................................................................................................88
`User-Agent.............................................................................................................................89
`Vary .......................................................................................................................................89
`Via .........................................................................................................................................90
`Warning .................................................................................................................................91
`WWW-Authenticate ........................