关于发送响应消息中的Content-Length

冰霜icefrost 2011-06-27 11:24:10
服务器端在接收到用户请求后,按如下格式发送
HTTP/1.0 200 OK \r\n
Content-Type: text/plain \r\n
Content-Length: 5 \r\n
abcde

在mozilla firefox上查看,仅显示 abc,少了两个字符。
http://127.0.0.1/readme.txt

请问这是怎么回事,Entity Body 后面也需要加 \r\n吗,我看协议上没有这样的规定呀。
另外 Content-Length是否需要包括字符串最后面的\0呀
...全文
631 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
solohac 2011-06-27
  • 打赏
  • 举报
回复
1.有些函数中Content-Length是自动的,就像strlen一样,不计算\0
2. body如果是最后的信息的段,\r\n可以不加.
kyotrue 2011-06-27
  • 打赏
  • 举报
回复
我刚才抓包看了,好像在正文前面还要个\r\n
Eleven 2011-06-27
  • 打赏
  • 举报
回复
会不会是你两边的编码方式不一样呢?
冰霜icefrost 2011-06-27
  • 打赏
  • 举报
回复
但为什么会少两个字符呢?
我自己写一个小socket程序,接收传过来的数据,
就可以正确显示为 abcde。

Entity Body 后面也需要加 \r\n吗?
kyotrue 2011-06-27
  • 打赏
  • 举报
回复
不用加\0
Eleven 2011-06-27
  • 打赏
  • 举报
回复
http://www.360doc.com/content/10/0930/17/3668821_57590979.shtml
看一下HTTP协议,希望对你有帮助
冰霜icefrost 2011-06-27
  • 打赏
  • 举报
回复
原因已经找到,
原来我在发送时 Header部分多发送了一个 \r\n,
所以接收时,按照Content-Length计算 Entity body,就差了两个字符。

结贴,谢谢。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧