【发布时间】:2018-09-14 17:25:40
【问题描述】:
RFC7230,新的 HTTP/1.1 规范,将VCHAR 称为可见的 ASCII 字符。这些字符具体是什么? RFC 规范没有提到这一点。
RFC20 中的 US-ASCII 规范也没有提及哪些字符可见,哪些不可见。
【问题讨论】:
RFC7230,新的 HTTP/1.1 规范,将VCHAR 称为可见的 ASCII 字符。这些字符具体是什么? RFC 规范没有提到这一点。
RFC20 中的 US-ASCII 规范也没有提及哪些字符可见,哪些不可见。
【问题讨论】:
我假设可见字符在十六进制 0x21 和十六进制 0x7E 之间。如果此假设正确,则不会包含空格 (0x20),不会包含水平制表符 (0x09),也不会包含 DEL (0x7F)。
RFC7230 中的以下定义支持此假设:
field-value = *( field-content / obs-fold )
obs-fold = CRLF 1*( SP / HTAB )
field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
field-vchar = VCHAR / obs-text
obs-text = %x80-FF
这会将空格字符单独考虑在内,因此VCHAR 不需要包含空格和水平制表符。
【讨论】:
VCHAR的定义引用自RFC 5234 Appendix B.1,将VCHAR定义为VCHAR = %x21-7E ; visible (printing) characters