我是靠谱客的博主 缓慢钻石,最近开发中收集的这篇文章主要介绍HTTP请求头和响应头字段,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先请求报文包括请求行、请求头、请求体

请求行:请求方法 路径 HTTP版本

不要混淆

请求头

  • Content-Type : 请求的与响应体对应的MIME信息,就是我从服务器里面想获取什么类型的信息。

​ 如果想获取json :Content-Type:application/json

​ 如果想获取html : Content-Type : text/html

​ 如果想获取jpg : Content-Type:image/jpg

  • Cookie : Cookie

  • Accpet:告诉服务端,客户端接收什么类型的响应

  • Referer:表示这是请求是从哪个URL进来的

  • Cache-Control:对缓存进行控制,如一个请求希望响应的内容在客户端缓存一年,或不被缓可以通过这个报文头设置

  • User-Agent :告诉服务器,客户端使用的操作系统、浏览器版本和名称

缓存相关 :

HTTP1.0

  • If-Modified-Since : 表示如果在…之后服务器的文件被修改了,就执行更新操作(叫服务器重发文件)

    ​ (使用流程:

    ​ ①客户端第一次请求服务器,服务器发来一个响应报文,响应报文包含页面、Last-Modified,并附上一 个时间A;

    ​ ②然后客户端浏览器就会缓存下来这个页面,下一次就不用请求服务器了

    ​ ③但是服务器的页面有时候就会改变,这样,就需要客户端每隔一段时间,看看自己的缓存的页面是否是最新的

    ​ ④这样客户端就发一个请求,里面包含If-Modified-Since,并附上时间A,这样就去看看,自从上次获取

    ​ 页面以来,服务器有没有改变了页面)

    Http1.1

  • if-Match : 表示如果匹配了,就…

    ​ (使用流程:

    ​ ①客户端第一次请求服务器,服务器发来一个响应报文,响应报文包含页面、Etag,

    ​ Etag跟这个页面关联,相当于这个页面的身份证

    ​ ②然后客户端浏览器就会缓存下来这个页面,下一次就不用请求服务器了

    ​ ③但是服务器的页面有时候就会改变,这样,就需要客户端每隔一段时间,看看自己的缓存的页面是否是最新的

    ​ ④这样客户端就发一个请求,里面包含If-Match,并附上刚刚的Etag,这样就去看看,

    ​ 我拥有的Etag和服务器的Etag是否一样,实质就是比较服务器的页面和我浏览器的页面有没有一样,

    ​ 如果Etag不一样,服务器就需要重发页面

    ​ )

  • Range : 用于断点续传。假如服务器支持范围请求的话,你可以使用 Range 首部来生成该类请求。该首部指示服务器应该返回文件的哪一或哪几部分。就是文件太大,每次只传一点点。例子:Range: bytes=0-1023 请求文件的0-1023字节

  • if-Range : 是为了判断在断点续传过程中,服务器页面有没有改变。就是比如 客户端先用Range传了1024个字节,然后关浏览器了,过了一段时间,继续断点续传。但是,服务器的文件可能发生改变了,前面传的那些可能不正确了。这时,就需要服务器把前面的重新传一下。if-Range里面的值也是Etag,和if-Match的比较是一样的。

响应头的字段

Last-Modified:看上面

Expires :表示告诉浏览器,我这段时间

最后

以上就是缓慢钻石为你收集整理的HTTP请求头和响应头字段的全部内容,希望文章能够帮你解决HTTP请求头和响应头字段所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部