1.http请求报文的格式
请求报文的起始行包括 :请求方法 (Get Post Head等八种请求方式) + 请求URL (此处为URL定位到请求的地方) + 请求的协议 图中为http1.0
请求头也就是图中首部包括:头部字段名 :头部字段名的值 (之前遇到过一个跨域访问接口的问题,也是在响应的报文头部加上字段之后可以实现跨域访问,之后我会整理一篇来阐述)
比如常见的:
Accept:表示客户端接受的内容类型,按照先后顺序表示客户端接收数据的先后次序
X-Requested-With:以x开头的是非http标准,一般是某种技术的出现而定义的;这里是用来判断是http请求还是ajax请求。
Referer:从这个页面访问请求行里的url
Accept-Language:客户端接受内容返回优先选择的语言
Accept-Encoding:客户端可以接受的服务器对返回内容进行编码压缩的格式。
User-Agent:客户端运行的浏览器类型信息。
Host:头域指定请求的服务器的地址和端口,HTTP/1.1必须包括Host,否则返回400
Connection:表示是否需要持久连接
Cookie:http请求时,会把保存的cookie也发送服务器。cookie是保存在客户端里的,分为内存cookie和硬盘cookie。前者随着浏览器关闭而消失,后者由过期时间或者用户手动清除。因为http请求是无状态的,所以服务器为了认证,会生成sessionid,让浏览器setcookie保存起来,每次请求携带上认证信息(关于cookie和session这个是面试官常问的,这个之后有时间得总结一下,简单的来说就是在服务器端和客户端存放的区别。)
请求数据包括: 就是请求发送的数据。
2.Http响应报文的格式
响应报文的起始行包括:状态行。也就是请求返回的状态,下一篇会讲到各种响应返回状态的整理(从1xx到5xx,包括常见的404,500的原因方便查找)
响应报文的首部包括:也是消息报头,包括返回的消息的一些属性内容等。比如
Server:包含处理请求的服务器信息,包含多个产品注释和标识。
Cache-Control:告知缓存机制是否可以缓存和类型,private是只能当前用户,不能被共享。
Expires:响应过期时间
X-Application-Context:application配置,这里表示读取的是application-prod.properties
Content-Type:返回数据的类型和字符编码格式
Transfer-Encoding:告知接收端,报文采取了何种编码,chunked表示服务器无法确定消息大小,一般比如下载等,就采用chunked。
Date:返回消息的时间
响应报文的主题:返回的就是我们请求的数据等消息。