美文网首页%……%计算机网络网络协议
菜鸟面试必知的 http 知识(二)—— HTTP协议特点

菜鸟面试必知的 http 知识(二)—— HTTP协议特点

作者: 彬彬酱 | 来源:发表于2017-03-11 16:57 被阅读1480次

    篇2介绍了URI和URL的含义,以及HTTP协议的一些特性,这些特性经常在面试中被问到。

    1- URI 和 URL

    URI(Uniform Resource Identifier):统一资源标识符。URI 是由某个协议方案表示的资源的定位标识符,协议方案是指访问资源所使用的协议类型名称。协议方案有 http、ftp、mailto、telnet、file,所以http 协议也只是 URI 众多协议中的一种

    图1 - 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的结构组件


    相关文章

      网友评论

        本文标题:菜鸟面试必知的 http 知识(二)—— HTTP协议特点

        本文链接:https://www.haomeiwen.com/subject/mihjjttx.html