Hypertext Transfer Protocol — HTTP/1.1

  

Network Working Group                                      R. Fielding
Request for Comments: 2616                                   UC Irvine
Obsoletes: 2068                                              J. Gettys
Category: Standards Track                                   Compaq/W3C
                                                              J. Mogul
                                                                Compaq
                                                            H. Frystyk
                                                               W3C/MIT
                                                           L. Masinter
                                                                 Xerox
                                                              P. Leach
                                                             Microsoft
                                                        T. Berners-Lee
                                                               W3C/MIT
                                                             June 1999

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] .

Table of Contents

  1. Introduction1
    1. Purpose 1.1
    2. Requirements 1.2
    3. Terminology 1.3
    4. Overall Operation 1.4
  2. Notational Conventions and Generic Grammar2
    1. Augmented BNF 2.1
    2. Basic Rules 2.2
  3. Protocol Parameters3
    1. HTTP Version 3.1
    2. Uniform Resource Identifiers3.2
      1. General Syntax 3.2.1
      2. http URL 3.2.2
      3. URI Comparison 3.2.3
    3. Date/Time Formats3.3
      1. Full Date 3.3.1
      2. Delta Seconds 3.3.2
    4. Character Sets3.4
      1. Missing Charset 3.4.1
    5. Content Codings 3.5
    6. Transfer Codings3.6
      1. Chunked Transfer Coding 3.6.1
    7. Media Types3.7
      1. Canonicalization and Text Defaults 3.7.1
      2. Multipart Types 3.7.2
    8. Product Tokens 3.8
    9. Quality Values 3.9
    10. Language Tags 3.10
    11. Entity Tags 3.11
    12. Range Units 3.12
  4. HTTP Message4
    1. Message Types 4.1
    2. Message Headers 4.2
    3. Message Body 4.3
    4. Message Length 4.4
    5. General Header Fields 4.5
  5. Request5
    1. Request-Line5.1
      1. Method 5.1.1
      2. Request-URI 5.1.2
    2. The Resource Identified by a Request 5.2
    3. Request Header Fields 5.3
  6. Response6
    1. Status-Line6.1
      1. Status Code and Reason Phrase 6.1.1
    2. Response Header Fields 6.2
  7. Entity7
    1. Entity Header Fields 7.1
    2. Entity Body7.2
      1. Type 7.2.1
      2. Entity Length 7.2.2
  8. Connections8
    1. Persistent Connections8.1
      1. Purpose 8.1.1
      2. Overall Operation 8.1.2
      3. Proxy Servers 8.1.3
      4. Practical Considerations 8.1.4
    2. Message Transmission Requirements8.2
      1. Persistent Connections and Flow Control 8.2.1
      2. Monitoring Connections for Error Status Messages 8.2.2
      3. Use of the 100 (Continue) Status 8.2.3
      4. Client Behavior if Server Prematurely Closes Connection 8.2.4
  9. Method Definitions9
    1. Safe and Idempotent Methods9.1
      1. Safe Methods 9.1.1
      2. Idempotent Methods 9.1.2
    2. OPTIONS 9.2
    3. GET 9.3
    4. HEAD 9.4
    5. POST 9.5
    6. PUT 9.6
    7. DELETE 9.7
    8. TRACE 9.8
    9. CONNECT 9.9
  10. Status Code Definitions10
    1. Informational 1xx10.1
      1. 100 Continue 10.1.1
      2. 101 Switching Protocols 10.1.2
    2. Successful 2xx10.2
      1. 200 OK 10.2.1
      2. 201 Created 10.2.2
      3. 202 Accepted 10.2.3
      4. 203 Non-Authoritative Information 10.2.4
      5. 204 No Content 10.2.5
      6. 205 Reset Content 10.2.6
      7. 206 Partial Content 10.2.7
    3. Redirection 3xx10.3
      1. 300 Multiple Choices 10.3.1
      2. 301 Moved Permanently 10.3.2
      3. 302 Found 10.3.3
      4. 303 See Other 10.3.4
      5. 304 Not Modified 10.3.5
      6. 305 Use Proxy 10.3.6
      7. 306 (Unused) 10.3.7
      8. 307 Temporary Redirect 10.3.8
    4. Client Error 4xx10.4
      1. 400 Bad Request 10.4.1
      2. 401 Unauthorized 10.4.2
      3. 402 Payment Required 10.4.3
      4. 403 Forbidden 10.4.4
      5. 404 Not Found 10.4.5
      6. 405 Method Not Allowed 10.4.6
      7. 406 Not Acceptable 10.4.7
      8. 407 Proxy Authentication Required 10.4.8
      9. 408 Request Timeout 10.4.9
      10. 409 Conflict 10.4.10
      11. 410 Gone 10.4.11
      12. 411 Length Required 10.4.12
      13. 412 Precondition Failed 10.4.13
      14. 413 Request Entity Too Large 10.4.14
      15. 414 Request-URI Too Long 10.4.15
      16. 415 Unsupported Media Type 10.4.16
      17. 416 Requested Range Not Satisfiable 10.4.17
      18. 417 Expectation Failed 10.4.18
    5. Server Error 5xx10.5
      1. 500 Internal Server Error 10.5.1
      2. 501 Not Implemented 10.5.2
      3. 502 Bad Gateway 10.5.3
      4. 503 Service Unavailable 10.5.4
      5. 504 Gateway Timeout 10.5.5
      6. 505 HTTP Version Not Supported 10.5.6
  11. Access Authentication 11
  12. Content Negotiation12
    1. Server-driven Negotiation 12.1
    2. Agent-driven Negotiation 12.2
    3. Transparent Negotiation 12.3
  13. Caching in HTTP13
    1. Cache Correctness 13.1.1
    2. Warnings 13.1.2
    3. Cache-control Mechanisms 13.1.3
    4. Explicit User Agent Warnings 13.1.4
    5. Exceptions to the Rules and Warnings 13.1.5
    6. Client-controlled Behavior 13.1.6
If you liked this post;
  • Please consider subscribing to our RSS feed