2011-10-25 3 views
3

http1.1 표준 인 rfc2616에서 인용 문자열은 다음과 같이 정의됩니다. 이 정의 "\"와 http1.1의 인용 문자열에 대한 정확한 구문과 의미는 무엇입니까 rfc2616

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

은 TEXT 것 같다, 따라서 <는 ">는 \ <는"> (따옴표, 백 슬래시는 따옴표)는 올바른 인용 문자열이 될 것으로 보인다. 그러나 이는 백 슬래시가 이스케이프 문자로 올바르게 사용되는 것과 모순되며 따옴표로 묶인 문자열의 끝을 명확하게 결정할 수 없게 할 수도 있습니다. 여기에 내 오류는 어디에 있습니까?

은 RFC는 심지어 LWS 내부 인용 문자열은 SP로 대체 될 수있는 해석을 읽고

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. 

말한다. 만약 내가 rfc 문자 그대로 받아 들인다. 나는 인용 부호로 둘러싼 문자열 "", "\ n", "\ n \ t \ t \ t", ...이 모두 같기 때문에 이것에 의아해합니다. 인용 된 문자열이 의미 론적으로 구별되지 않을 수 있습니까?

답변

3

질문 1 : RFC의 버그입니다.

HTTPbis WG ticket 31HTTPbis, Part 1, Section 3.2.3을 참조하십시오.

2 번 질문 : HTTPbis Part 1, 3.2.1 참조 - 아니요, 구별 할 수 없습니다.

+0

이것은 이스케이프 문제에 대한 답변입니다. LWS 의미론 문제는 무엇입니까? – johannes

+0

먼저이 Q & A를 해준 덕분에 도움이되었습니다. 직장에서 나는 [요약] (https://evolvis.org/pipermail/evolvis-platfrm-discuss/2014-November/000675.html)을 보냈습니다. @ 요하네스 그렇습니다. '$ '\ t''는'$'\\ \\ \\\ t''가됩니다. (또는 더 시각적 인 표현을 원한다면' · · →''\ "\"\ "")가되며, 개행 문자와 다른 제어 문자가 사라집니다. – mirabilos

관련 문제