第4章 返回结果的HTTP状态码
1、状态码的类别:
1)1XX:接收的请求正在处理
2)2XX:请求正确处理完毕
3)3XX:需要进行附加操作以完成请求
4)4XX:服务器无法处理请求
5)5XX:服务器处理请求出错
2、2XX
1)202 Accepted:服务器已接受请求,但尚未处理,该请求最终可能不被执行;
2)204 No Content:表示服务器端接收的请求已成功处理,但在返回的响应报文中不含实体主体,浏览器显示的页面不发生更新;
3)206 Partial Content:表示客户端进行了范围请求(Range: bytes =5001-10000),服务器端成功执行了这部分的请求,响应报文中包含由Content-Range指定范围的实体内容(Content-Range:bytes 5001-10000/10000);
3、3XX
1)301 Moved Permanently:永久性重定向。表示请求的资源已被分配了新的URI,以后应使用新的URI;
2)302 Found:临时性重定向。表示请求的资源已被分配了新的URI,希望客户端本次能使用新的URI访问,URI将来还可能发生改变;
3)303 See Other:表示请求的资源存在新的URI,应使用GET方法定向获取请求的资源;
302与303的区别:如果客户端发出非GET、HEAD请求后,收到服务器端的302状态码,那么客户端就不能自动的向新的URI发送重复请求,除非得到用户的确认。如果收到服务器端的303状态码,那么客户端可以接着使用GET方法去请求响应报文Location里的URI;
4)304 Not Modified:表示客户端发送附带条件的请求时(例如,只请求某个时间以后更新的资源),服务器端允许请求访问资源,但因为未满足条件(例如,某个时间以后资源一直未更新),返回304状态码,不包含响应的主体部分,客户端可直接使用未过期的资源缓存;
4、4XX
1)400 Bad Request:表示请求报文中存在语法错误;
2)401 Unauthorized:表示发送的请求需要有通过HTTP认证的认证信息。如果之前已经进行过认证,则表示认证失败;
3)403 Forbidden:表示对请求资源的访问被服务器拒绝了。服务器端没有必要给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分对原因进行描述;
4)404 Not Found:表示服务器上无法找到请求的资源;
5、5XX
1)500 Internal Server Error:表示服务器端在执行请求时发生了错误,也可能是web应用存在的bug或某些临时的故障;
2)503 Service Unavailable:表示服务器暂时处于超负载或正在进行停机维护,现在无法处理请求;
第5章 与HTTP协作的Web服务器
1、利用虚拟机可以实现一台HTTP服务器搭建多个web站点。在相同IP地址下,由于服务器托管了多个站点,因此在发送HTTP请求时,必须在请求首部的host字段完整指定域名的URI;
2、代理:接收客户端发送的请求并转发给服务器,接收服务器返回的响应并转发给客户端。在HTTP通信中,可级联多台代理服务器,请求和响应转发时,需要附加Via首部字段标记出经过的代理主机信息。使用代理的理由有:利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的等;
1)缓存代理:当代理转发从服务器返回的响应时,代理服务器会保存一份资源的副本。当代理再次接收到对相同资源的请求时,就可以不从源服务器那里获取资源,而是将之前缓存的资源作为响应返回;
2)透明代理:不对报文做任何加工的代理;
3、网关:利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全。网关能使通信线路上的服务器提供非HTTP协议服务;
4、隧道:在客户端和服务器之间建立安全的通信线路,使用SSL等加密手段。隧道本身不会去解析HTTP请求,请求保持原样中转给服务器;
5、缓存不仅可以存在于缓存服务器内,还可以存在客户端浏览器中。以IE为例,把客户端缓存称为临时网络文件(Temporary Internet File)。和缓存服务器相同,当判定缓存过期后,会向源服务器确认资源的有效性。若判断浏览器缓存失效,浏览器会再次请求新资源;
网友评论