RFC1945-http1.0 self-translation - (3)

zhaozj2021-02-08  224

Nouns to explain = noun explanation (Name = definition)

The name of the rule is it itself (without any angle bracket, "<", ">"), followed by the equal number =, and then the definition of this rule. If the rule needs to be described in multiple rows, the indent format is used to use spaces. Some basic rules use uppercase, such as SP, LWS, HT, CRLF, Digit, Alpha, and more. Angle brackets can also be used in definitions to help understand the use of the rule name.

Lesser meaning ("literal")

The literal meaning of the text is placed in the middle of the quotation, unless specified, the text is sensitive.

Rule 1 | Rule 2 (Rule1 | Rule2)

"|" Indicates that its separated element is optional, for example, "Yes" Yes "is 'is' or 'No'.

(Rule 1 Rule 2) ((rule1 rule2))

Elements in parentheses indicate that one of them must be selected. Such as (element 1 (element 2 | element 3) element 4) can indicate two meaning, "element 1 element 2 element 4" and "element 1 element 3 element 4"

* Rules (* rule)

In front of the elements, the star is indicated by the cycle, and its complete form is " * element", indicating that the element is at least times, up to times. The default is 0 to unlimited, for example, "1 * element" means that there is at least one, and "1 * 2 element" indicates that there are 1 or 2.

[Rule] ([Rule])

In square brackets are optional elements. Such as "[element 1 element 2]" and "* 1 (element 1 element 2)" is a matter.

N rule (n rule)

The number of times the cycle is indicated: " (element)" is " * (element)", that is, accurately indicating value. Thus, 2Digit is 2 digits, and 3ALPHA is a string consisting of three letters.

Berners-Lee, et al information [Page 9]

# 规 ((#rule)

"#" Is similar to "*" to define a list of elements.

The complete form is " # element" means at least with element, intermediate "," or any number of spaces (LWS-linear whitespace), which will make The list is very convenient, such as "* LWS element * (* LWS", "* LWS element)" is equivalent to "1 # element".

Empty elements can be used any in the structure, but do not participate in the count of the number of elements. That is, "(element 1), (element 2)" only represents two elements. However, in the structure, there should be at least one non-empty element. The default is 0 to unlimited, ie "# (element)" means any value, including 0; "1 # element" means at least one; and "1 # 2 element" means there is 1 or 2. Comment (; Comment)

The semicolon is noted later, only in a single line.

Injection * LWS (IMPLIED * LWS)

The grammatical description of this article is based on words. Unless otherwise specified, linear spaces (LWS) can be used in two adjacent symbols or separators (Tspecials), without affecting the meaning of the whole sentence. There must be at least one separator between the two symbols because they also do as separate symbols. In fact, the application should be in accordance with the "usual mode" when the HTTP structure is generated, as it is now clear that it is not working properly in the usual mode.

2.2 Basic Rules

The following rules will be used in the basic analysis of structures after this article.

US-ASCII encoded character set definition [17].

OcTet = <8-bit sequential data, ie Bytes>

Char =

Upalpha =

LOALPHA =

Berners-Lee, et al information [Page 10]

Alpha = Upalpha | Loalpha

Digit =

CTL =

Cr =

LF =

SP =

HT =

<"> =

HTTP / 1.0 specifies that except for entity main body (see Appendix B fault tolerant applications), all protocol elements' row end signs are CRLF (in byte order). The row end flag inside the entity main body and its corresponding media type are defined, see the description of Section 3.6. CRLF = CR LF

The head of HTTP / 1.0 can be folded into a lot, as long as each subsequent line starts with a space or horizontal tab. All linear spaces (LWS), with spaces (SP) have the same semantics.

LWS = [CRLF] 1 * (SP | HT)

In fact, some applications do not consider handling such a multi-line head, so the HTTP / 1.0 application is best not to generate a multi-line head from compatibility.

The TEXT rule is just the content of the domain used to describe the message interpreter and its value. Text content can contain characters different from US-ASCII.

TEXT =

The recipients in the title domain include characters other than the US-ASCII character set, which will be explained in accordance with the ISO-8859-1 standard.

Hexadecimal digital characters are in several protocol elements.

HEX = "a" | "b" | "c" | "d" | "e" | "f"

"A" | "B" | "C" | "D" | "e" | "f" | DIGIT

The content of many http / 1.0 headers consists of a word or special character separated by LWS, which must be placed in the middle of the quotation marks, and is used as the parameter value.

Word = Symbol (TOKEN) | Strings caused by quotation marks

Berners-Lee, et al informational [Page 11]

Token = 1 *

Tspecials = "(" | ")" | <"|"> "|" @ "

| "," | ";" | | "/" | <">

| "/" | "[" "]" | "" | "="

| "{" | "}" | SP | HT

In the HTTP header field, you can use brackets to indicate text. Note Only the domain containing the comment is allowed to be partially defined as part of the domain value. In addition to other domains, parentheses will be considered as domain values.

Comment = "(" * (ctext | comment) ")"

ctext =

The text string in the double quotes will be considered a word.

Quoted-string = (<"> * (qdtext) <">)

QDText = is not allowed in HTTP / 1.0 to reference the single character.

3. Protocol parameters (Protocol parameters)

3.1 HTTP Version (HTTP Version)

HTTP uses the master from (. ) to represent the version. The version policy of the agreement tends to let the sender indicate the format and function of its message, not just for the characteristics of communication, the purpose is to communicate with a higher version of HTTP. Only the value of the extended domain or increase the message component that does not affect the communication behavior will result in changes in version data. When the main parsing algorithm of the protocol message is different, the message syntax and the implicit function of the sender have increased, which will result in an increase from the version number (); when the format of the message in the agreement changes, the main version number (< Major>) will also change.

The version of the HTTP message is represented by the HTTP version field in the first row. If the protocol version in the message is not specified, the recipient must assume that it is a simple standard that meets HTTP / 0.9.

Berners-lee, et al information [Page 12]

Http-version = "http" / "1 * Digit". "1 * DIGIT

Note that the master-slave version should be considered a separate integer because they all have increased, thereby exceeding one integer. Thus, HTTP / 2.4 is lower than HTTP / 2.13, and HTTP / 2.13 is lower than HTTP / 12.3. 0 of the version number will be ignored by the recipient, but should not be generated at the sender.

This document defines 0.9 and 1.0 versions of the HTTP protocol. Sending a full request (full-request) and full response (full-response) message must indicate that the HTTP version is "http / 1.0".

HTTP / 1.0 server must:

o Identify the format of the request queue in the HTTP / 0.9 and HTTP / 1.0 request commands.

o Understand any legal request format in HTTP / 0.9 and HTTP / 1.0.

o Use the same version of the agreement to respond to the client.

HTTP / 1.0 client must:

o Identify the format of the Status-line in the HTTP / 1.0 response.

o Understand the format of legal response in HTTP / 0.9 and HTTP / 1.0.

When the agent and gateway receives HTTP requests with their own versions, be careful to process the request push because the protocol version indicates that the sender's capabilities, the agent, or gateway should not issue a higher version. If a high release request, a proxy or gateway must reduce the version of the request and respond to an error. The low version of the request should also be upgraded before being pushed.

The proxy or gateway responds to the request, you must follow the previously listed regulations.

Berners-Lee, et al information [Page 13]

转载请注明原文地址:https://www.9cbs.com/read-1810.html

New Post(0)