状态码的类别 2×× 成功: 200 OK204 No Content:服务器接收的请求已经正确处理,但在返回的报文中没有实体的主体部分,也不允许返回任何实体的主体。一般在只需要从客户端忘服务器发送信息,而对客户端不需要发送新信息内容的情况下使用。206 Partial Content:客户端进行了范围请求,服务器也成功执行了这个部分的请求。3×× 重定向: 301 Moved Permanently:永久性重定向。请求的资源已经被分配了新的URI302 Found:临时性重定向。请求的资源已经分配了新的URI,并希望本次使用新的URI访问303 See Other:请求对应的资源还村在另一个URI,应使用GET方法定向获取请求的资源。304 Not Modified:客户端发送附带条件的请求时,服务端允许请求访问资源,但未满足条件的情况,304状态码返回时,不包含任何响应的主体部分。 304虽然被划分在3××类别中,但和重定向无任何关系。307 Temporary Rediret:临时重定向。和Found有着相同的含义。307会按照遵照浏览器标准,不会从GET变成POST4×× 客户端错误: 400 Bad Request:请求中存在语法错误。401 Unauthorized:发送的请求需要有通过HTTP认证的认证信息,如果已经请求过一次,则表示用户认证失败。403 Forbidden:请求的资源的访问被服务器拒绝了。404 Not Found:服务器上无法找到请求的资源。5×× 服务器错误: 500 Internal Server Error:服务器执行请求的时候发生了错误。也有可能是Web应用存在的bug或某些临时的故障。503 Service Unavailable:服务器暂时处于超负载或者正在进行停机维护,现在无法处理请求。
第五章 与HTTP协作的Web服务器
通信数据转发程序:代理、网关、隧道 代理:持有资源实体的服务器被称为源服务器。从源服务器返回的响应经过代理服务器后再传给客户端。每次通过代理服务器转发请求或相应是,会追加写入Via首部信息用以标记经过的主机信息。 缓存代理:会预先将资源的副本(缓存)保存在代理服务器上。当代理再次接收到对相同资源的请求时,就可以不从源服务器那里获取资源,而是将之前缓存的资源作为响应返回。透明代理:转发请求或响应时,不对报文做任何加工网关,工作机制和代理十分相似。网关能使通信线路上的服务器提供非HTTP协议服务。利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全。比如,网关可以连接数据库,使用 SQL 语句查询数据。另外,在 Web 购物网站上进行信用卡结算时,网关可以和信用卡结算系统联动。隧道,安全的通信线路,可按要求建立起一条与其他服务器的通信线路,届时使用 SSL 等加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的通信。隧道本身不会去解析HTTP请求。隧道会在通信双方断开连接时结束。保存资源的缓存:缓存是指代理服务器或客户端本地磁盘内保存的资源副本。利用缓存可减少对源服务器的访问,因此也就节省了通信流量和通信时间。 即使存在缓存,也会因为客户端的要求、缓存的有效期等因素,向源服务器确认资源的有效性。若判断缓存失效,缓存服务器将会再次从源服务器上获取“新”资源。缓存不仅可以存在于缓存服务器内,还可以存在客户端浏览器中。