HTTP
1. 无状态协议
HTTP是一种不保存状态,即无状态协议,HTTP协议自身不对请求和响应之间的通信状态进行保存,协议对于发送过的请求或响应都不做持久化处理,为了实现期望的保持状态功能(比如浏览商品详情无需重复登录),引入了Cookie技术,使用Cookie技术能够在一定程度上进行自定义状态管理
2. HTTP Request
TRACE
TRACE方式是让Web服务器端将之前的请求通信返回给客户端的方法,发送请求时,会在Max-Forwards
头部字段中填入数值,并且在每经过一个服务器端时就会将该值减1,当该数值刚好减到0时,就会停止传输,最后接收到请求的服务器则会返回状态码200 OK
的响应
可以通过TRACE
方法查询发送出去的请求是怎么被加工和纂改的,一般用来确认连接过程中发生的一系列操作
HEAD
HEAD方法和GET方法一样,只是不返回报文主体部分,用于确认URL的有效性及资源更新的日期时间等
OPTION
OPTIONS方法用来查询针对URI指定的资源支持的方法
3. 报文格式
以下是通过curl -v
获取到的HTTP报文格式
1 | curl -v 127.0.0.1:8080/test |
整个报文分为请求体和响应体,首行中包含了HTTP的请求方法,请求对象以及使用的HTTP版本,第二行标明了Host
表示请求资源所在的主机,User-Agent
则用来表示用户代理,即向服务器发送请求的浏览器类型,此处由于是使用命令行的方式进行请求,因此User-Agent
的值为curl/8.1.2
,其中Accept
为*/*
则表示客户端愿意接受任何格式的响应
响应体大致分为三个部分:状态行、首部行和响应实体,其中Content-Length
主要表示的是发送/接收对象的字节数