一、状态码
HTTP响应报文的响应行会返回HTTP状态码,这些状态码代表HTTP请求的返回结果。标记客户端是否处理正常,通知出现的错误。以下是状态码的类别与暗含的服务器信息。
状态码类 | 类描述 | 描述短语 | 常见状态码 |
---|---|---|---|
1XX | Informational(信息状态码) | 接受的请求正在处理 | 无 |
2XX | Success(成功状态码) | 请求正常处理完毕 | 200 : 请求正在处理 204 : 返回响应报文不含主体 206 : 范围请求,响应报文包含由Content-Range指定范围的实体内容 |
3XX | Redirection(重定向状态码) | 需要进行附加操作完成请求 | 301 : 永久性重定向,该状态码请求的资源已经分配了新的URI,以后应使用现在所指的URI访问该资源 302 : 临时性重定向,该状态码的资源已被分配了新的URI,但用户还是能访问当前的URL 303 : 请求资源对于另一个URL,请使用GET获取请求 304 : 请求资源有,但服务器拒绝返回(常见于浏览器不再请求相同的资源) 307 : 临时重定向,禁止重定向从POST变成GET |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 | 400 : 请求报文中有语法错误,需要修改请求内容再次发送 401 : 该状态码表示发送的请求需要经过HTTP的认证 403 : 请求资源被拒绝,访问权限出现了问题 404 : 服务器上没有该资源 |
5XX | Server Error(服务端错误状态码) | 服务器请求处理出错 | 500 : 服务器执行时发生了错误 503 : 服务器超负载正在停机维护,无法处理请求 |
二、HTTP服务器
服务器常使用虚拟主机技术,物理上只有一台主机,但实际上拥有多台主机。另外,一台web服务器可搭载多个独立域名的web网站。
以下介绍与通信数据转发的相关名词。
1. 代理
代理是一种转发功能的应用程序,它扮演了位于服务器和客户端"中间人"的角色,接受客户端发送的请求并转发给服务器,同时也接受服务器返回的响应并转发给客户端。如nginx
-
代理服务器的基本行为:接收客户端发送的请求后转发给其他服务器,持有资源的实体的服务器被称为源服务器。从源服务器返回的响应经过代理服务器后再传给客户端
-
每次代理服务器请求或响应时,会写入Via首部信息
-
通过代理可以 利用缓存技术,减少网络带宽、组织内部针对特定网络进行访问控制
通过代理根据是否修改报文或是否使用缓存分类:
- 缓存代理:代理服务器会预先将资源的副本缓存,当再次接受相同资源的请求时,就可以不从源服务器那里获取资源
- 透明代理:转发请求或代理时,不对报文进行任何加工的代理称为透明代理,否则叫做非透明代理
2. 网关
网关是转发其他服务器通信数据的服务器,接收客户端发送的请求,它就好像自己拥有资源的源服务器一样对请求进行处理
3. 隧道
隧道是相隔甚远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序
网友评论