美文网首页
HTTP响应

HTTP响应

作者: 无心文先森 | 来源:发表于2019-12-05 17:10 被阅读0次

服务端HTTP响应

HTTP响应也由四个部分组成,分别是: 状态行消息报头空行响应正文

常用的响应报头

理论上所有的响应头信息都应该是回应请求头的。
但是服务端为了效率,安全,还有其他方面的考虑,会添加相对应的响应头信息

  1. Cache-Control:must-revalidate, no-cache, private
    这个值告诉客户端,服务端不希望客户端缓存资源,在下次请求资源时,必须要从新请求服务器,不能从缓存副本中获取资源。
    Cache-Control是响应头中很重要的信息,当客户端请求头中包含Cache-Control:max-age=0请求,明确表示不会缓存服务器资源时
    Cache-Control作为作为回应信息,通常会返回no-cache,意思就是说,"那就不缓存呗"。
    当客户端在请求头中没有包含Cache-Control时,服务端往往会定,不同的资源不同的缓存策略,比如说oschina在缓存图片资源的策略就是Cache-Control:max-age=86400,这个意思是,从当前时间开始,在86400秒的时间内,客户端可以直接从缓存副本中读取资源,而不需要向服务器请求。
  2. Connection:keep-alive
    这个字段作为回应客户端的Connection:keep-alive,告诉客户端服务器的tcp连接也是一个长连接,客户端可以继续使用这个tcp连接发送http请求。
  3. Content-Encoding:gzip
    告诉客户端,服务端发送的资源是采用gzip编码的,客户端看到这个信息后,应该采用gzip对资源进行解码。
  4. Content-Type:text/html;charset=UTF-8
    告诉客户端,资源文件的类型,还有字符编码,客户端通过utf-8对资源进行解码,然后对资源进行html解析。通常我们会看到有些网站是乱码的,往往就是服务器端没有返回正确的编码。
  5. Date:Sun, 21 Sep 2016 06:18:21 GMT
    这个是服务端发送资源时的服务器时间,GMT是格林尼治所在地的标准时间。http协议中发送的时间都是GMT的,这主要是解决在互联网上,不同时区在相互请求资源的时候,时间混乱问题。
  6. Expires:Sun, 1 Jan 2000 01:00:00 GMT
    这个响应头也是跟缓存有关的,告诉客户端在这个时间前,可以直接访问缓存副本,很显然这个值会存在问题,因为客户端和服务器的时间不一定会都是相同的,如果时间不同就会导致问题。所以这个响应头是没有Cache-Control:max-age=*这个响应头准确的,因为max-age=date中的date是个相对时间,不仅更好理解,也更准确。
  7. Pragma:no-cache
    这个含义与Cache-Control等同。
  8. Server:Tengine/1.4.6
    这个是服务器和相对应的版本,只是告诉客户端服务器的信息。
  9. Transfer-Encoding:chunked
    这个响应头告诉客户端,服务器发送的资源的方式是分块发送的。一般分块发送的资源都是服务器动态生成的,在发送时还不知道发送资源的大小,所以采用分块发送,每一块都是独立的,独立的块都能标示自己的长度,最后一块是0长度的,当客户端读到这个0长度的块时,就可以确定资源已经传输完了。
  10. Vary: Accept-Encoding
    告诉缓存服务器,缓存压缩文件和非压缩文件两个版本,现在这个字段用处并不大,因为现在的浏览器都是支持压缩的。

Cookie 和 Session:

服务器和客户端的交互仅限于请求/响应过程,结束之后便断开,在下一次请求时,服务器会认为新的客户端。
为了维护他们之间的链接,让服务器知道这是前一个用户发送的请求,必须在一个地方保存客户端的信息。

  • Cookie:通过在 客户端 记录的信息确定用户的身份。
  • Session:通过在 服务器端 记录的信息确定用户的身份。

响应状态码

响应状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

常见状态码:

  1. 100~199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。
  2. 200~299:表示服务器成功接收请求并已完成整个处理过程。常用200(OK 请求成功)。
  3. 300~399:为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址、常用302(所请求的页面已经临时转移至新的url)、307和304(使用缓存资源)。
  4. 400~499:客户端的请求有错误,常用404(服务器无法找到被请求的页面)、403(服务器拒绝访问,权限不够)。
  5. 500~599:服务器端出现错误,常用500(请求未完成。服务器遇到不可预知的情况)。

相关文章

  • http 响应

  • HTTP响应

    HTTP的响应报文由3部分组成,分别是:响应行,响应头,响应正文 //响应行 格式:协议/版本号 状态码 状态码描...

  • HTTP响应

    服务端HTTP响应 HTTP响应也由四个部分组成,分别是: 状态行、消息报头、空行、响应正文 常用的响应报头 理论...

  • http响应

    1.包含 响应头、响应体、响应代码 2.response status code 3.response heade...

  • HTTP响应小结

    HTTP 响应 1) 能够使用使用浏览器开发工具查看响应 点击"Network",在"Name"选"Headers...

  • 操作HTTP响应

    更改默认的Content-Type result的内容类型会被自动推断通过作为响应体的Java值.举个例子: 会自...

  • HTTP响应码

    参考文献: [1]http://blog.csdn.net/kankankankan2222/article/de...

  • HTTP响应解析

    header();只要改变响应头,就调用该方法。 响应头的解析 1、刷新页面 Refresh:告诉浏览器,间隔多少...

  • http响应头

    Allow 服务器支持哪些请求方法(如GET、POST等)。 Content-Encoding 文档的编码(Enc...

  • HTTP 响应代码

    参考HTTP 响应代码 响应分为五类: 信息响应 1xx 成功响应 2xx 重定向 3xx 客户端错误 4xx 服...

网友评论

      本文标题:HTTP响应

      本文链接:https://www.haomeiwen.com/subject/qoqjgctx.html