簡體   English   中英

http1.1 rfc2616 中引用字符串的確切語法和語義是什么

[英]what is the exact syntax and semantics of a quoted string in the http1.1 rfc2616

在作為 HTTP/1.1 標准的rfc2616中,帶引號的字符串定義如下。

quoted-string  = ( <"> *(qdtext | quoted-pair ) <"> )
quoted-pair    = "\" CHAR
CHAR           = <any US-ASCII character (octets 0 - 127)>
qdtext         = <any TEXT except <">>
TEXT           = <any OCTET except CTLs, but including LWS>

根據這個定義,“”似乎是一個文本,因此<">\<"> (引號、反斜杠、引號)似乎是一個有效的引用字符串。 但這與反斜杠作為轉義字符的正確用法相矛盾,甚至可能導致無法明確地確定引用字符串的結尾。 我的錯誤在哪里?

RFC 還指出

LWS            = [CRLF] 1*( SP | HT )
All linear
white space, including folding, has the same semantics as SP. A
recipient MAY replace any linear white space with a single SP before
interpreting the field value or forwarding the message downstream.

我讀過這樣的解釋,即使是帶引號的字符串中的 LWS 也可以用 SP 替換。 如果我從字面上理解 RFC,那就是它所說的。 我對此感到困惑,因為這意味着引用的字符串“”、“\n”、“\n\t \t \t”……都是一樣的。 那些帶引號的字符串真的不能在語義上區分嗎?

關於問題 1:這是 RFC 中的錯誤。

請參閱HTTPbis WG ticket 31HTTPbis,第 1 部分,第 3.2.3 節

關於問題 2:請參閱HTTPbis 第 1 部分,3.2.1 - 所以不,您無法區分這些。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM