请求报文
HTTP请求报文由三部分组成:
- 请求行
- 请求头
- 请求体
- 请求行
- 请求方法:GET和POST是最常见的HTTP方法,除此之外还包括DELETE、HEAD、OPTIONS、PUT、TRANCE,不过当前的大多数浏览器都只支持GET和POST
- URL:为请求对应的URL
- 版本号:既HTTP协议的版本
- 请求头
- 引用
快到中午了,张三丰不想去食堂吃饭,于是打电话叫外卖:老板,我要一份[鱼香肉丝],要12:30之前给我送过来哦,我在江湖湖公司研发部,叫张三丰。
这里,你要[鱼香肉丝]相当于HTTP报文体,而“12:30之前送过来”,你叫“张三丰”等信息就相当于HTTP的报文头。它们是一些附属信息,帮忙你和饭店老板顺利完成这次交易。
请求HTTP报文和响应HTTP报文都拥有若干个报文关属性,它们是为协助客户端及服务端交易的一些附属信息。- Accept
请求报文可通过一个“Accept”报文头属性告诉服务端 客户端接受什么类型的响应。
如下报文头相当于告诉服务端,俺客户端能够接受的响应类型仅为纯文本数据啊,你丫别发其它什么图片啊,视频啊过来,那样我会歇菜的~~~:- Cookie
- Referer:表示请求是从那个页面跳转过来的
假如你通过google搜索出一个商家的广告页面,你对这个广告页面感兴趣,鼠标一点发送一个请求报文到商家的网站,这个请求报文的Referer报文头属性值就是http://www.google.com。
- Cache-Control:
对缓存的控制,比如一个请求希望响应返回的内容在客户端要被缓存一年,或者不希望被缓存就可以通过这个报文头达到目的
响应报文
响应报文也由三部分构成
- 响应行
- 响应头
- 响应体
- 响应行
- 报文协议与版本
- 状态码与描述,关于状态码,可以看这篇文章
- 响应头
- Cache-Control:响应输出到客户端后,服务端通过该报文告诉客户端如何控制响应内容缓存(请求头中是希望,响应头中是具体实践)
- ETag:代表请求资源的内容,如果资源发生变化,那么这个属性也会跟着变化。是Cache-Control的有益补充,表示当前资源在服务器中的唯一标识
- Location:再重定向或者创建新资源的时候使用,告知客户端去到重定向后的资源
- Set-Cookie:服务端可以设置客户端的Cookie
参考文章
HTTP请求行、请求头、请求体详解