HTTP 协议和TCP/IP 协议内的众多协议相同,用于客户端和服务器端之间的通信 HTTP协议规定,请求从客户端发出,最后服务器相应请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有收到请求之间是不会发送响应的
请求报文由请求方法,请求URI,协议版本,可选的请求首部字段和内容实体构成 响应好问基本由协议版本,状态码,用以解释状态码的原因短语,可选的响应首部字段以及试实体主体构成
HTTP是一种不保存状态的协议,即无状态协议,HTTP协议自身不对请求和响应之间的通信状态进行保存,也就是在HTTP这个级别,协议对于发送过的请求或者响应都不做持久化处理
当客户端请求访问资源而发送请求时,URI需要将作为请求报文中的请求包含在内,指定请求URI的方式有很多
为了解决请求一个页面多次TCP连接的问题,想出了持久连接的方法,也成为了HTTP keep-alive或者HTTP connection reuse的方法 持久化连接旨在建立一次TCP连接后进行多次请求和响应的交互 在HTTP1.1中,所有的连接默认都是持久化连接
持久化连接使得多数请求以管线话的方式发送成为可能,从前发送请求后需要等待并响应,才能够发送下一个请求,管线话技术出现后,不用等待响应亦可直接发送下一个请求这样就能够做到同时并行发送多个请求,而不需要一个接一个等待响应了 ## 使用Cookie的状态管理 HTTP是无状态协议,他不对之前发送过的请求和响应的状态进行管理,也就是说,无法很久之前的状态进行本次的请求处理 保留无状态协议这个特征同时又要解决类似的矛盾问题,于是引入了Cookie技术,Cookie会根据从服务器端发送的响应报文内的一个叫做set-Cookie的首部字段信息,通知客户端保存Cookie,当下次客户端再往服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去,服务器端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,对比服务器上的记录,得到之前的状态信息