状态码
号 | 类别 | 原因短语 |
---|---|---|
1XX | Informational,信息 | 接收的请求正在处理。服务器收到请求,请继续执行请求 |
2XX | Success,成功 | 请求被成功接收并处理。 |
3XX | Redirection,重定向状态码 | 需要进行附加操作以完成请求 |
4XX | Client Error,客户端错误 | 服务器无法完成请求,或请求包含语法错误 |
5XX | Server Error,服务端错误 | 服务器在处理请求时出错 |
- 在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。
1XX
- 100:Continue 继续,请求者应当继续提出请求,服务器已收到请求的一部分,正在等待其余部分。
- 101:切换协议,请求者已要求服务器切换协议,服务器已确认并准备切换。
2XX
-
no 状态码 信息 200 OK 成功 请求已经被服务器成功处理了 201 已创建 请求成功并且服务器创建了新的资源 202 已接受 服务器已接收请求,但尚未处理 203 非授权信息 服务器已成功处理了请求,但返回的信息可能来自另一源 204 No Content,无内容 服务器成功处理了请求,但没有返回任何内容(响应报文中不包含实体的主体部分)(浏览器显示的页面不发生更新)(一般只在需要从客户端往服务器发送消息,而对客户端不需要发送新信息的情况下使用) 205 重置内容 服务器成功处理了请求,内容被重置 206 Partial Content 服务器成功处理了部份请求。客户端进行了范围请求,响应报文中包含content-Range指定范围的实体内容
3XX 重定向
- 浏览器需要执行某些特殊的处理以正确处理请求
NO | Info | description |
---|---|---|
300 | 多种选择 | 针对请求,服务器可执行多种操作 |
301 | Moved Permanently,永久性重定向 | 请求的资源已经被分配了新的URI |
302 | Found 临时性重定向 | 请求的资源已经被分配了新的URI,希望用户本次使用新的URI访问 |
303 | See Other,查看其它位置 | 由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。 |
304 | Not Modified,未修改 | 客户端发送附带条件的请求时,服务器允许访问该资源,单位满足条件的情况。 请求返回的网页未修改,继续使用上次的资源 |
305 | 使用代理 | 请求者应该使用代理访问该网页 |
307 | Temporary Redirect,临时重定向 | 与302Found又相同的含义,但是307会遵守浏览器标准,不会从POST改为GET 请求的资源临时从其他位置响应 |
- 301,302,303返回时,几乎所有浏览器都会把POST改为GET。删除请求报文内的主题,之后请求会自动再次发送
- 301,302标准时禁止将POST改为GET的,但实际大家都这样用
- 附带条件:
- If-Match
- If-Modified-Since
- If-None-Match
- If-Range
- If-Unmodified-Since
4XX 客户端错误
- 客户端时发生错误的原因
NO | Info | Description |
---|---|---|
400 | Bad Request, 错误请求 | 请求报文中存在语法错误,服务器无法解析该内容 |
401 | Unauthorized,未授权 | 发送的请求需要通过HTTP认证,用户认证失败 |
403 | Forbidden,禁止访问 | 对请求资源的访问被服务器拒绝了,不用给出具体的详细理由 |
404 | Not Found 未找到 | 服务器找不到请求的网页 |
405 | Method Not Allowed, 方法不被允许 | 服务器禁用了请求中指定的方法 |
406 | 不接受 | 无法使用请求的内容响应请求的网页 |
407 | 需要代理授权 | 请求者需要使用代理授权 |
408 | Request Timeout,请求超时 | 服务器请求超时 |
409 | Conflict 指令冲突 | 服务器在完成请求时发生冲突 |
410 | 已删除 | 请求的资源已永久删除 |
411 | 需要有效长度服务器 | 不接受不含有有效内容长度标头字段的请求 |
412 | 未满足前提条件 | 服务器未满足请求者在请求中设置的其中一个条件 |
413 | Request Entity Too Large,请求实体过大 | 请求实体过大,超出服务器的处理能力 |
414 | Request-URI Too Long,所请求的URL地址过长 | 网址过长,服务器无法处理 |
415 | 不支持类型 | 请求的格式不受请求页面的支持 |
416 | Requested Range Not Satisfiable, 请求的范围无法被满足 | |
417 | 未满足期望值 | 服务器未满足期望请求标头字段要求 |
- 401 Unauthorized
- 发送请求
- 第一次返回401(WWW-Authenticate首部以质询用户信息)
- 第二次返回401(认证失败)
5XX 服务器错误
- 服务器本身发生错误
NO | info | Description |
---|---|---|
500 | Ineternal Server Error,服务器内部错误 | 服务器在执行请求的时候发生了错误 |
501 | 为实现 | 服务器不具备完成请求的功能 |
502 | 错误网关 | 服务器作为网关或代理,从****服务器收到无效响应。 |
503 | Service Unavailable,服务不可用 | 服务器暂时处于超负载或正在进行停机维护,现在无法处理请求 |
504 | 网管超市 | 服务器作为网关或代理,但是没有及时从上游服务器收到请求 |
505 | HTTP版本不支持 | 服务器不支持请求中所用的HTTP协议版本 |
与HTTP协作的Web服务器
用单台虚拟主机实现多个域名
- 虚拟主机(虚拟服务器)功能:即使物理层面只有一台服务器,但是只要使用虚拟主机功能,则可以假象具有多台服务器
- 域名通过DNS映射到IP,当请求发送到服务器的时候,就已经是IP形式的了。
- 在相同的IP下,由于虚拟注意可以寄存多个不同主机名和域名耳朵Web网站,一次在发送HTTP请求时,必须在Host首部内完整指定主机名或域名deURI
通信数据转发程序:代理、网关、隧道
代理
- 具有转发功能的应用程序,作为中间人的角色。
- 代理不改变请求URI,会直接发送给签放只有资源的目标服务器
- 每次通过代理服务器转发or响应时,会追加写入Via首部信息。
- 优点:
- 利用缓存技术减少网络宽带的流量
- 组织内部针对特定网站的访问控制,以获取访问日志为主要目的?
-
缓存代理(也有非缓存代理)
- 会预先将资源的副本保存在代理服务器上
- 当代理再次接收到相同资源的请求时,就可以不从源服务器获取
-
透明代理(同理非透明代理)
- 不对报文做任何加工的代理即透明代理
网关
- 网关时转法其他服务器通信数据的服务器
- 网关的工作机制与代理类似,但是网关能使通信线路上的服务器提供非HTTP协议服务
- 可提高通信安全性,可在客户端与网关之间加密以保证安全
隧道
- 是在相隔甚远的客户端和服务器之间进行中转,并保持双方通信连接的应用程序
- 使用SSL等加密手段进行通信。
- 隧道的目的:确保客户端与服务器进行安全的通信
- 隧道本身是透明的,客户端不用在意隧道的存在
保存资源的缓存
- 缓存:代理服务器或客户端本地磁盘内的资源副本
有效期限
- 会造成缓存不是最新的内容。
- 解决:向源服务器确认资源的有效性
客户端的缓存
- 也会判定缓存是否国企,向源服务器确认资源有效性