【2 计算机基础】2.2 计算机网络(上)
2.2 计算机网络
【考点讲解】
- HTTP协议相关知识点
- HTTP和HTTPS
- OSI七层网络协议
- TCP和UDP
- TCP的三次握手和四次挥手
- Cookie和Session
- Web数据流转
- CDN
- 抓包的原理
- Socket的原理
- 网络问题排查
【例题示例】
2.2.1 HTTP和HTTPS的区别在哪里?
- HTTP协议相关知识点
- 对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
- 非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。
2.2.2 请谈谈 GET 请求和 POST 请求的差别。
- HTTP协议相关知识点
主要的差别有:
- GET请求的含义是请求从服务器获取资源(可以是静态的文本、页面、图片视频等),POST请求的含义是向服务器提交数据,表示向服务器申请创建新的资源或对已有的资源进行修改。
- GET请求将请求参数拼接到URL上进行参数传递,而POST则是将请求参包装到HTTP报文的请求体(body)中。
- 从请求的大小看,GET请求的长度受限于浏览器和服务器对URL长度的限制,
- 按照REST规范,GET请求是幂等的,即读取同一个资源,总是得到相同的数据,而POST请求不是幂等的,因为每次请求对资源的改变并不是相同的;进一步讲,GET请求一般不会改变服务器上的资源,而POST请求会对服务器资源进行改变。
- GET请求因为是读取资源,是幂等的,就可以对GET请求的数据做缓存。而POST请求是向服务器申请创建新的资源或对已有的资源进行修改,不是幂等的,因此也就不能做缓存。以下订单场景为例,如果POST请求可被浏览器缓存,那么当下单这个操作就可以不向服务器发请求,而直接返回本地缓存的“下单成功界面”,却又没有真的在服务器进行下单,这是不合逻辑的。
2.2.3 聊一聊 HTTP 1.0、HTTP 1.1 和 HTTP 2.0 有哪些区别?
- HTTP协议相关知识点
- 缓存处理,在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
- 带宽优化及网络连接的使用,HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。
- 错误通知的管理,在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。
- Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。
- 长连接,HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。
- 降低延迟,针对HTTP高延迟的问题,SPDY优雅的采取了多路复用(multiplexing)。多路复用通过多个请求stream共享一个tcp连接的方式,解决了HOL blocking的问题,降低了延迟同时提高了带宽的利用率。
- 请求优先级(request prioritization)。多路复用带来一个新的问题是,在连接共享的基础之上有可能会导致关键请求被阻塞。SPDY允许给每个request设置优先级,这样重要的请求就会优先得到响应。比如浏览器加载首页,首页的html内容应该优先展示,之后才是各种静态资源文件,脚本文件等加载,这样可以保证用户能第一时间看到网页内容。
- header压缩。前面提到HTTP1.x的header很多时候都是重复多余的。选择合适的压缩算法可以减小包的大小和数量。
- 基于HTTPS的加密协议传输,大大提高了传输数据的可靠性。
- 服务端推送(server push),采用了SPDY的网页,例如我的网页有一个sytle.css的请求,在客户端收到sytle.css数据的同时,服务端会将sytle.js的文件推送给客户端,当客户端再次尝试获取sytle.js时就可以直接从缓存中获取到,不用再发请求了。
- 新的二进制格式(Binary Format),HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮。
- (MultiPlexing),即连接共享,即每一个request都是是用作连接共享机制的。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
测试工作无非就是点点点,没有太深的技术难度?<br/> 开发转投测试岗,原以为自身的条件能轻松胜任测试岗却反被面试官虐?<br/> 测试岗究竟要准备哪些技术知识去应对面试?<br/> 如何才能在测试岗面试中做到游刃有余?<br/> <p> <span>本专刊从测试岗面试考察的知识点和能力出发,精选出经典的测试岗面试题,不仅给出面试的典型回答和考点分析,还会剖析知识点,将其讲清讲透,让你彻底领悟题目背后所考察的能力,帮你梳理复习测试岗的知识体系。</span> </p> <h3> <span><br /> </span><span><strong>专刊主要分为3大模块:</strong></span> </h3> <p> <span>1. 岗位校招情况介绍:</span> </p> <p> <span>将对整个测试岗位进行详细的介绍,包括测试岗位的分类、市场需求量、薪资情况和校招概况,都会逐一做介绍,让同学们能对测试岗位的校招情况有个大概的了解<br /> 2. 面试考点和面试题讲解:</span> </p> <p> <span>这是本章最为核心的部分,将会以面试题讲解的形式,不仅给出面试题参考答案,还会对考点进行分析,剖析其中的知识点,把知识点讲清讲透,帮助同学们梳理复习测试岗的知识体系。本章涉及的知识板块有:软件测试基础知识、测试用例设计、排查问题的思路、常用的测试工具、计算机操作系统、计算机网络、编程语言和常考的智力题。内容丰富,基本上涵盖了测试面试常考的知识点。<br /> 3. 求职经验分享:</span> </p> <p> <span>本章将详细讲解面试的注意事项:从面试前的准备、面试当天到面试结束收到offer整个过程,都会进行逐一讲解。</span> </p> <p> <span><br /> </span> </p> <h3> <span>专刊大纲:</span> </h3> <p> <span><img src="https://uploadfiles.nowcoder.com/images/20210625/691666214_1624592824918/B4749CDE6B040FF304C11BA36D1276D5" alt="" width="700" height="1692" title="" align="" /><br /> <br /> </span> </p> <h3> <span>购买须知:</span> </h3> <span>①订阅成功后,用户即可通过牛客网 PC 端、App 端享有永久阅读的权限;<br /> ②牛客专刊为虚拟内容服务,订阅成功后概不退款;<br /> ③在专刊阅读过程中,如有任何问题,可在文章评论区底部留言,或添加牛客求职导师,加入读者交流群;<br /> ④想成为牛客作者,请邮件联系pandengfeng@nowcoder.com,邮件主题【牛客作者+写作方向】,并附上个人简历一份及近期作品一份;<br /> ⑤牛客专刊版权归本平台所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布 / 发表,违者将依法追究责任。<br /> </span> <p> <span>了解专刊更多详细信息,请扫码添加丸子老师微信~</span> </p> <p> <br /> </p> <p> <img src="https://uploadfiles.nowcoder.com/images/20210526/999991364_1622023901811/2E767EB5BD55BF57B67C8E5427B978D8" alt="" /> </p>