GET请求后服务器的响应不正确
Incorrect response from the server anfter GET request
当我在c++中发送带有"GET"的请求时,如下所示:
GET / HTTP/1.1rnHost: site.comrnrn
我得到了正确的答案。但是,当我根据浏览器的操作配置请求时(我从数据包嗅探器中捕获了标头),服务器的响应是200 OK,但html主体是一块垃圾。标题中显示的内容Length也证明了我没有得到正确的html响应。添加"Accept-Encoding:gzip,deflate"时会出现问题。我发送的正是浏览器发送的内容。但我收到的回复与浏览器不同。你认为为什么会发生这种事?
如果您接受gzipped内容,服务器可能会发送gzipped的内容。(事实上,一些有缺陷的服务器发送gzip内容,即使你不说你接受它!)
请注意,在返回的标头中,它将包括Content-Encoding: gzip
,或者可能是deflate而不是gzip。这个告诉你关于编码。如果它是gzip,则需要使用类似zlib
的库对其进行解压缩。
在对HTTP1.1请求的回复中,您可能会看到另一件事,即连接在完成时不一定会关闭,并且您可能会得到Transfer-Encoding: chunked
,这将以不同的方式格式化正文。分块响应是一系列长度为十六进制的分块,然后是内容,最后是一个空分块。相比之下,未处理的响应是用Content-Length
头发送的,它告诉您期望多少。内容长度是它发送的数据的长度,如果数据被压缩,这个长度会更小。
除非您实现解压缩,否则不要发送Accept-Encoding
。不过,您可能必须实现分块响应,因为它在http1.1中很常见,如果只执行http1.0,则无法使用重要的主机标头。
相关文章:
- 使用2个键的cpp-stl::优先级队列排序不正确
- 正弦级数方程计算不正确
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 密码登录程序将永远循环并显示不正确的结果
- 在C++中返回不正确的楼层函数值
- 形状对象的旋转和缩放不正确C++
- C++ 读取文件读取文件不正确
- 关于类的 Python 文档 - 对C++的引用不正确
- 特征 LLT 模块给出不正确的结果?
- glibcxx STL 在实现 std::valarray::sum() 时是否不正确?
- 如果语句逻辑不正确
- 来自逆 vp 矩阵和相机位置的光线方向不正确
- 不正确的操作数类型 MSVC
- 数组填充了不正确的值
- 我是否不正确地集中了这些字符数组?
- 为什么除非我使用 cout,否则我的值不正确?
- 计算幂级数的数学结果不正确
- 为什么 sizeof 在 C++ 中给出不正确的字节数?
- HTTP 响应格式不正确?
- GET请求后服务器的响应不正确