该篇文章主要是对HTTP协议进行简单介绍,HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并返回。Http是一种不保存状态即无状态协议。HTTP协议自身不对请求和响应之间的通信状态进行保存,即对于发送过的请求或响应都不做持久化处理,自身不具备保存之前发送过的请求或响应的功能。为了期望保持状态功能,引入了Cookie技术。
-
请求报文结构
-
请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。
响应报文结构
-
响应报文基本上由协议版本、状态码、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成。
HTTP方法
- HTTP/1.1可使用的方法:
-
方法名 目的 说明 GET 获取资源 用来请求访问已被URI识别的资源 POST 传输实体主体 POST的主要目的并不是获取响应的主体内容 PUT 传输文件 HTTP/1.1的PUT方法自身不带验证机制,存在安全问题 HEAD 获取报文首部 和GET方法一样,只是不返回报文主体部分 DELETE 删除文件 与PUT相反的方法,一样不安全 OPTIONS 询问支持的方法 用来查询针对请求URI指定的资源支持的方法 TRACE 追踪路径 让web服务器端将之前的请求通信环回给客户端的方法 ,该方法不常用,容易引发XST(Cross-Site Tracing,跨站追踪),攻击 CONNECT 要求用隧道协议链接代理
持久链接
- 只要任意一端没有明确提出断开链接,则保持TCP链接状态,好处在于减少了TCP链接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。 管线化
- 管线化技术出现后,不用等待响应亦可直接发送下一个请求。这样就能够做到同时并行发送多个请求,而不需要一个接一个地等待响应了。 Cookie状态管理
-
Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。
Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。