20181212 http协议做了什么
这篇文章的重点不只是解释什么是http协议,更重要的是,了解http协议后,你可以了解http请求包request和回应包response包含哪些数据,从而更轻松地应付接口的返回包设置。
概念:http协议全名超文本传输协议,它是工作在tcp/ip协议上的一个应用层协议。
注意,http协议是基于tcp的。
怎么理解什么是应用层协议呢?
举个栗子,你开发了一个可以聊天的应用程序,底层通信通过tcp,此时两个客户端就可以互相发送数据了。但是此时,对方能接收到你发的数据却不知道你发的数据是什么类型的,如果双方约定好,只发送字符串,然后接收解析成字符串也还好,但是哪怕是只发送字符串也要涉及到编码统一的问题。约定用utf8,如果机器上没有unicode字符集就无法使用,况且还有想发送图片,文件等形式的数据,所以在实际应用中总应该有一个可以告诉对方发送数据附加信息的字段。这个可以通过什么实现呢,可以封装一个类比如ResultMessage,这个类包含了数据的比特流和数据的编码方式,数据格式,解析格式等信息,发送时将该类作为双方通信的约定格式,对方以ResultMessage的格式解析数据流然后根据数据信息再解析数据呈现给用户就可以更自由地完成各种通信了。这就是一个应用层协议的产生过程和做的工作。
下面再来看http协议,只不过把上述过程的客户端与客户端替换为了浏览器与服务器,将ResultMessage替换成了Request和Response,其他的只是附加内容的不同罢了。
request附加信息:
response附加信息: