HTTP 头部信息,响应码

HTTP响应码

一、HTTP响应的第一行是状态信息表示请求的结果状态。
响应码分五种类型,由它们的第一位数字表示

码类别 描述
1xx 信息,继续处理
2xx 成功
3xx 信息,继续处理
4xx 客户端错误
5xx 服务器错误
  • 1xx:信息,继续处理
  • 2xx:成功
  • 3xx:重定向,
  • 4xx:客户端错误
  • 5xx:服务器错误
    下面显示每个响应码及其含义:
  • 1xx
码类别 描述
100 继续
101 分组交换协
  • 2xx
码类别 描述
200 OK
201 被创建
202 被采纳
203 非授权信息
205 重置内容
206 部分内容
  • 3xx
码类别 描述
300 多选项
301 永久地传送
302 找到
303 参见其他
304 未改动
305 使用代理
307 暂时重定向
  • 4xx
码类别 描述
400 错误请求
401 未授权
402 要求付费
403 禁止
404 未找到
405 不允许的方法
406 不被采纳
407 要求代理授权
408 请求超时
409 冲突
410 过期的
411 要求的长度
412 前提不成立
413 请求实例太大
414 请求URI太大
415 不支持的媒体类型
416 无法满足的请求范围
417 失败的预期
  • 5xx
码类别 描述
500 内部服务器错误
501 未被使用
502 网关错误
503 不可用的服务
504 网关超时
505 HTTP版本未被支持

HTTP头由主键/值对组成。

四种不同类型的头标:

  • 通用头标:即可用于请求,也可用于响应。
  • 请求头标:允许客户端传递关于自身的信息和希望的响应形式。
  • 响应头标:服务器和于传递自身信息的响应。
  • 实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。
    头标格式:<name>:<value><CRLF>

下面描述一些常用的头标

  • Allow:一个响应头标,它定义一个由位于请求URI中的次源所支持的HTTP方法列表。例如:Allow: GET,PUT

  • Accept:告诉服务器自己接受什么介质类型,按优先级排序;在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。 / 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。例如:Accept: image/jpeg,image/png,*/*

  • Accept-Charset:浏览器申明自己接收的字符集,按优先级排序;在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。
    例如:Accept-Charset: iso-8859-1,*,utf-8

  • Accept-Encoding: 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法 (gzip,deflate)
    例如:Accept-Encoding:gzip,compress
    Accept-Language: 浏览器申明自己接收的语言语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等。
    例如:Accept-Language: en,de

  • Accept-Ranges: 一个响应头标,WEB服务器表明自己是否接受获取其某个实体的一部分(比如文件的一部分)的请求。bytes:表示接受,none:表示不接受。
    该头标的值被理解为请求范围的度量单位。
    例如1Accept-Ranges: bytes1 或 1Accept-Ranges: none1

  • Authorization: 当客户端接收到来自WEB服务器的 WWW-Authenticate 响应时,该头部来回应自己的身份验证信息给WEB服务器。
  • Cache-Control:缓存方式
    请求:no-cache(不要缓存的实体,要求现在从WEB服务器去取)
    max-age:(只接受 Age 值小于 max-age 值,并且没有过期的对象)
    max-stale:(可以接受过去的对象,但是过期时间必须小于max-stale 值)
    min-fresh:(接受其新鲜生命期大于其当前 Age 跟 min-fresh 值之和的缓存对象)
    响应: public(可以用 Cached 内容回应任何用户)
    private(只能用缓存内容回应先前请求该内容的那个用户)
    no-cache(可以缓存,但是只有在跟WEB服务器验证了其有效后,才能返回给客户端)
    max-age:(本响应包含的对象的过期时间)
    ALL: no-store(不允许缓存)
  • Connection:
    请求: close(在完成本次请求的响应后,断开连接)。
    keepalive(长链接)。
    响应: close(连接已经关闭)。
    keepalive(连接保持着,在等待本次连接的后续请求)。
    Keep-Alive:如果浏览器请求保持连接,则该头部表明希望 WEB 服务器保持连接多长时间(秒)。
    例如:Keep-Alive:300
  • Date: 发送HTTP消息的日期。例如:Date: Mon,10PR 18:42:51 GMT
  • ETag: 就是一个对象(比如URL)的标志值,就一个对象而言,比如一个 html 文件,如果被修改了,其 Etag 也会别修改。
    所以,ETag 的作用跟 Last-Modified 的作用差不多,主要供 WEB 服务器 判断一个对象是否改变了。
    比如前一次请求某个 html 文件时,获得了其 ETag,当这次又请求这个文件时,浏览器就会把先前获得的 ETag 值发送给 WEB 服务器,然后 WEB 服务器
    会把这个 ETag 跟该文件的当前 ETag 进行对比,然后就知道这个文件有没有改变了。
  1. Expired: WEB服务器表明该实体将在什么时候过期,对于过期了的对象,只有在跟WEB服务器验证了其有效性后,才能用来响应客户请求。
    是 HTTP/1.0 的头部。
    例如:Expires:Sat, 23 May 2009 10:02:12 GMT
  • Host: 客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号。
    例如:Host:rss.sina.com.cn

  • If-Match: 如果对象的 ETag 没有改变,其实也就意味著对象没有改变,才执行请求的动作。
    If-None-Match: 如果对象的 ETag 改变了,其实也就意味著对象也改变了,才执行请求的动作。

  • If-Modified-Since: 如果请求的对象在该头部指定的时间之后修改了,才执行请求的动作(比如返回对象),否则返回代码304,告诉浏览器该对象没有修改。
    例如:If-Modified-Since:Thu, 10 Apr 2008 09:14:42 GMT
    If-Unmodified-Since:如果请求的对象在该头部指定的时间之后没修改过,才执行请求的动作(比如返回对象)。

  • If-Range: 浏览器告诉 WEB 服务器,如果我请求的对象没有改变,就把我缺少的部分给我,如果对象改变了,就把整个对象给我。 浏览器通过发送请求对象的
    ETag 或者 自己所知道的最后修改时间给 WEB 服务器,让其判断对象是否改变了。总是跟 Range 头部一起使用。

  • Last-Modified: WEB 服务器认为对象的最后修改时间,比如文件的最后修改时间,动态页面的最后产生时间等等。
    例如:Last-Modified:Tue, 06 May 2008 02:42:43 GMT

HTTP 请求消息头部实例

Host:rss.sina.com.cn
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
Accept:text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language:zh-cn,zh;q=0.5
Accept-Encoding:gzip,deflate
Accept-Charset:gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive:300
Connection:keep-alive
Cookie:userId=C5bYpXrimdmsiQmsBPnE1Vn8ZQmdWSm3WRlEB3vRwTnRtW   
If-Modified-Since:Sun, 01 Jun 2008 12:05:30 GMT
Cache-Control:max-age=0

HTTP 响应消息头部实例:

Status:OK - 200                 
Date:Sun, 01 Jun 2008 12:35:47 GMT
Server:Apache/2.0.61 (Unix)
Last-Modified:Sun, 01 Jun 2008 12:35:30 GMT
Accept-Ranges:bytes
Content-Length:18616
Cache-Control:max-age=120
Expires:Sun, 01 Jun 2008 12:37:47 GMT
Content-Type:application/xml
Age:2
X-Cache:HIT from 236-41.D07071951.sina.com.cn              
Via:1.0 236-41.D07071951.sina.com.cn:80 (squid/2.6.STABLE13)
Connection:close
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容