序言
HTTP \1协议是一个可扩展的协议,而在真是的网络世界中,HTTP做了哪些扩展从而达到商用的级别呢?本文是第二部分。
HTTP扩展
HTTP重定向
HTTP重定向需要和浏览器的知识关联在一起,
- 浏览器首先发送一条HTTP请求
- 服务器返回状态码301、302
- 浏览器检查到状态码301、302,就再次发送HTTP请求,该请求的URL在返回报文的location字段中。
可以看到这个过程,并不是HTTP协议本身进行了跳转,而是浏览器根据HTTP协议定义的状态码和扩展出的头字段location进行相应的跳转操作。
重定向的使用场景:
-
前面讲过,重定向可以作为负载均衡器。
重定向作为负载均衡
访问过程如上,中间加上了重定向服务器作为负载均衡。这种方式由于要损耗性能,实际上很少用。
- 永久跳转。当某个网站地址已经失效,此时可以使用永久跳转,直接导入到新网址,直到不再有人使用旧网址,就可以将旧网址失效。
- 临时跳转。当前网址临时有问题或者处于运维考虑,临时跳转到另外一个新地址,当运维结束,就不再跳转。
HTTP cookie
HTTP本身是没有状态的,假定我们处于一个购物网站,登录后,实际上服务器是需要维持一个会话状态的。这个会话状态如何解决,这就用到了cookie技术。
例如:
Accept:text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Cookie:user=xxx;level=vip
在头字段中传入Cookie:name=value,可以支持多个,使用‘;’隔开。服务端通过cookie知道了标识,就可以使用cookie重点的用户名判断用户状态,从而决定返回内容。例如说服务器对于用户会话设置了1天的超期时间。当在第一次登陆后,1天内浏览服务器网站时,该用户都是有效的。
小结
今天这篇简单接受http的跳转和cookie两个扩展。目前介绍的这些扩展都是属于HTTP\1协议内的内容,一些特定的web服务器和配套的客户端,都可以自己定义自身的扩展。












网友评论