request/response的header可以含有回车么?

2013-06-08 22:35:12 +08:00
 pyKun
具体的是\n
carriage return
(没有\t)

在curl的文档里有提到:
curl will make sure that each header you add/replace is sent with the proper end-of-line marker, you should thus not add that as a part of the header content: do not add newlines or carriage returns, they will only mess things up for you.

但是我想要到http协议的依据,这样是不行的
例如这里
http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
有http的协议说header line是不能包括回车,必须要quote的么?
4768 次点击
所在节点    HTTP
8 条回复
elden
2013-06-08 22:45:24 +08:00
header的字段值可以包含换行符,但后面必需跟有空格或tab,否则后面的字符就会被当做下一个字段来解析。
pyKun
2013-06-08 22:48:35 +08:00
pyKun
2013-06-08 22:49:25 +08:00
@elden
这个引用有链接么?
tab是LF么?
pyKun
2013-06-08 22:51:03 +08:00
elden
2013-06-08 22:55:54 +08:00
@pyKun tab是\t


rfc2616 2.2 http://www.w3.org/Protocols/rfc2616/rfc2616.txt

"HTTP/1.1 header field values can be folded onto multiple lines if the
continuation line begins with a space or horizontal tab. 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."
elden
2013-06-08 22:57:44 +08:00
@pyKun 我是指\r\n或\n后面加空格
pyKun
2013-06-08 23:11:08 +08:00
@elden
貌似看懂点了,换行到下个文本间要加空格

那参照django和curl,其实我的client拒绝掉包含换行的value其实也没有问题
elden
2013-06-09 00:20:49 +08:00
@pyKun django不清楚,但curl是遵循rfc2616规范的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/71752

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX