HTTP协议
客户端与服务器之间的文档(如HTML)交互如何实现?这需要一种协议来规范数据的请求、组织和传输,HTTP就是这样一种协议。
(django下)过程:
1、客户端通过url,并携带自身的一些特征,比如session,浏览器版本号信息等,作为一个Request对服务器进行请求(有数据交互时有GET或POST方法来传递数据)。TCP三次握手,建立起连接。
2、服务器接收到请求后,生成Request对象,根据url,路由到对应的view函数,通过Request.GET 或者Request.POST方法来得到客户端输入的数据。之后经过处理,渲染HTML模板后返回给客户端。如果是登陆,还会返回session等信息
3、客户端接收返回的数据,还有session,将它保存在cookie中。接收完毕,这一次请求就结束,TCP连接结束。
特点:应用层协议,传输的是明文,无状态的协议。
“HTTP是基于传输层的TCP协议,而TCP是一个端到端的面向连接的协议。所谓的端到端可以理解为进程到进程之间的通信。所以HTTP在开始传输之前,首先需要建立TCP连接,而TCP连接的过程需要所谓的“三次握手”,在TCP三次握手之后,建立了TCP连接,此时HTTP就可以进行传输了。一个重要的概念是面向连接,既HTTP在传输完成之间并不断开TCP连接。一次HTTP请求完成,只依靠一个TCP连接就够了,这就是所谓的持久连接。(如打开百度,会请求很多,但这一次只依靠一个TCP)”
http://kb.cnblogs.com/page/130970/
https://www.zybuluo.com/yangfch3/note/167490
http://www.cnblogs.com/CareySon/archive/2012/04/27/HTTP-Protocol.html