我负责的工作主要是linux后台的服务器应用程序。负责对各个方面的数据进行处理。
我们终端系统,需要从华为的CRM的系统接收报文,此报文就是基于http协议的数据。而我们终端系统是c/c++的程序,需要对报文按字符来处理。因此,需要对http协议进行很详细的了解。
apach等服务器已经封装好了,因此用于java开发的系统就不用理会http协议的格式数据了。
下面我分为发送,接收,处理等方面描述一下http协议。
首先要发送。
发送的数据报文格式,如下
以上是一个http报文的格式,因此我们后台系统如果发送数据,就要将数据格式拼接成这样,对端的web服务器才能认识。
接收报文的格式
还有一种chunked 的形式,表示 数据量过大,对端没flush一次,就发送一次,因此对端就要不停的无限循环的接收数据。每次接收到的数据都是十六制长度+报文
因此接收数据
但是带有长度,就直接根据Content-Length 的长度直接rec就OK
因此底层的数据接收http的数据,一定要注意数据报文协议。很详细很细节的东西,对接收数据编程有极大的帮助。