自行实现HTTP协议时需要注意的几个地方
最近在API对接的时候遇到一些问题,记录下。
API为HTTP GET/POST方式,但对方是使用C/C++自行封装的HTTP协议。
1、nginx在HTTP1.1下默认开启chunk模式,header中不包含Content-length,而在消息体中会多出一些用于chunk解码的字符。
简易获取数据的话,还是用Content-length比较方便,这就需要处理两个地方:
程序返回前手动加上Content-length的header
Nginx配置中在需要的location中关闭chunk模式
[plain]
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:10080;
fastcgi_index index.php;
include fastcgi.conf;
chunked_transfer_encoding off; //这一句
}
2、向Apache或Nginx发送POST请求时,需要在header中加上 Content-Type: application/x-www-form-urlencoded
Apache和Nginx是通过它获取POST内容的,如果header中该参数不正确,则无法取到POST数据。
作者:linvo
补充:Web开发 , 其他 ,