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 "
[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: "
Berners-Lee, et al information [Page 9]
# 规 ((#rule)
"#" Is similar to "*" to define a list of elements.
The complete form is "
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 =
3. Protocol parameters (Protocol parameters)
3.1 HTTP Version (HTTP Version)
HTTP uses the master from (
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]