http 基础的简单理解
http 协议用于客户端和服务端间的通信
客户端: 发起访问资源请求的一端,资源内容可为文本,图片等等
服务端: 响应资源请求的一端
必定是客户端先发起请求,服务器端才会响应
下面看一个具体请求

其中客户端第一列第一项表示发起请求的方法,第二项表示URI(访问的资源对象),第三项表示使用的协议
合起来看,表示的是以http协议的get方法访问某个资源的 index.html 对象
从第二列开始,则为可选的请求首部字段
接下来看看客户端返回的内容
第一行分别为:协议及版本,请求处理结果的状态码和原因短语
第二行则为:返回日期
第三行和第四行为可选首部项,其中内容分别为主体长度和类型
再下面没有显示的则为发送内容
http 是无状态协议
也就是说,http 协议本身不对双端的内容进行保存,极大的加快了处理业务的速度。
但也有一定的弊端,例如当我们登陆一个网站主页,想带着登陆的状态跳到另外一个页面。就很难处理了
为了让服务端知道是谁发起的请求,因此引进了 cookie 技术
cookie 技术
cookie 通过在请求和响应中写入内容来控制客户端的状态
当客户端发起请求后,服务端在返回内容中会加入一个 set-Cooie 的传递给客户端,当客户端再次发起请求时,则会在请求报文中加入相应的值传给服务端,此时,服务端就可以知道是谁发起了请求


// 请求报文
GET /index.html http/1.1
host:test.com
*无cookie相关信息
// 响应报文
http/1.1 200 ok
date:日期
...
<set-cookie: sid = 1234; path:/....>
...
// 再次发起的请求报文
GET /index.html http/1.1
host:test.com
cookie: sid = 1234
http 常用的方法
get 和 post最为常见,其次还有put、head、delete等等, 不多赘述
持久连接和管线化
在 http/1.1 及之后,实现了http的持久化连接。
也就是说,只要其中一方不断开连接,则会一直保持TCP连接
这也就为管线化的实现提供了可能
及发送了一个请求之后,不需要等待响应,可以再接着发送请求

浙公网安备 33010602011771号