请求报文和响应报文
客户端和服务器之间通过请求和响应的交换进行通信。
- 请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。
- 响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段一级实体主体构成。
如果不是访问特定资源,而是对服务器本身发起请求,可以用一个 * 来代替请求URI。
例子:OPTIONS * HTTP/1.1 (查询服务器支持的方法)
HTTP/1.1 中的方法:
GET:用来请求访问已被URI识别的资源
POST:用来传输实体的主体
PUT:用来传输文件(自身不带验证机制,存在安全性问题,一般不使用)
HEAD:获得报文首部
DELETE:按请求URI删除指定的资源(和PUT方法一样自身不带验证机制,也一般不使用)
OPTIONS:用来查询针对请求URI指定的资源支持的方法
TRACE:追踪路径,让web服务器端将之前的请求通信环回给客户端的方法
CONNECT:要求用隧道协议连接代理,主要使用SSL和TLS协议把通信内容加密后经网络隧道传输
持久连接
持久连接旨在建立1次TCP连接后进行多次请求和响应的交互,减少通信量也减轻了服务器端的负载。
管线化的出现:发送请求后无需等待响应就可发送下一个请求。
Cookie
HTTP是不保存状态的协议,不对之前发生过的请求和响应状态进行保存和管理,所以引入了Cookie技术。
- 客户端发送请求
- 服务器生成Cookie记住是谁发送的,在响应中添加Cookie后返回(Set-Cookie)
- 之后客户端发送请求时会自动添加Cookie
- 服务器接到发来的Cookie会检查是哪一个客户端发来的请求并对比服务器的记录,最后得到之前的状态信息