篇2介绍了URI和URL的含义,以及HTTP协议的一些特性,这些特性经常在面试中被问到。
1- URI 和 URL
URI(Uniform Resource Identifier):统一资源标识符。URI 是由某个协议方案表示的资源的定位标识符,协议方案是指访问资源所使用的协议类型名称。协议方案有 http、ftp、mailto、telnet、file,所以http 协议也只是 URI 众多协议中的一种。
URL(Uniform Resource Locator):统一资源定位符有时也被俗称为网页地址。URI 用字符串标识某一互联网资源,而 URL 表示资源的地点(互联网上所处的位置),URL 是 URI 的子集,在充分理解的基础上,可以用 URL 替换 URI 。
2 - HTTP 协议
HTTP 协议规定,请求从客户端发出,最后服务端响应该请求并返回。
2.1 - HTTP的无状态
HTTP是一种不保存状态,即无状态协议。这指的是,HTTP协议不对请求和响应之间的通信状态进行保存。所以使用HTTP协议,每当有新的请求发送,就会有对应的新响应产生。这样做的好处是更快地处理大量事务,确保协议的可伸缩性。
但是随着业务的发展,有时需要对用户之前的HTTP通信状态进行保存,比如执行一次登陆操作,在30分钟内所有的请求都不需要再次登陆。于是引入了Cookie技术,之后也会介绍。
2.2 - HTTP的持久连接
HTTP协议初试版本中,每进行一次HTTP通信就要断开一次TCP连接。但是当浏览器请求一个包含多张图片的HTML页面时,会增加通信量的开销。为了解决这个问题,HTTP/1.1相处了持久连接(HTTP keep-alive)方法。其特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态,在请求首部字段中的Connection: keep-alive即为表明使用了持久连接。
2.3 - HTTP的管线化
管线化是基于持久连接的。在没有持久连接之前,发送请求后需等待并收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求。这样就能够做到同时并行发送多个请求,不需要一个接一个地等待响应了。
2.4 - Cookie
在实际业务场景中,会要求用户在页面A进行账号登陆,然后在页面B进行访问时,识别出该用户已经登陆的身份。所以需要把之前在页面A登陆的信息保存起来,而HTTP协议并没有该功能,所以就引入狼人Cookie技术。
Cookie会根据从服务端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。
服务端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录(Session),最后得到之前的状态信息。所以这里你可以知道Cookie和Session的区别,首先是存放位置,其次是安全性和持久性(存放在服务端的Session更为安全和持久)
大家好,我是彬彬酱,目前在腾讯从事Web后端开发。
菜鸟必知的 http 知识专题整理了关于网络的基础知识,适合大家进行入门级学习,这个专题现包含下列文章:
菜鸟必知的 http 知识(一)—— TCP 握手协议
菜鸟必知的 http 知识(二)—— HTTP 协议特点
菜鸟必知的 http 知识(三)—— 请求和响应报文
菜鸟必知的 http 知识(四)—— HTTP 和 HTTPS
菜鸟必知的 http 知识(五)—— 新技术的出现
菜鸟必知的 http 知识(六)—— web的结构组件
网友评论