HTTP:1、常见状态码:状态码可以按照第一个数字进行分类,1xx表示继续发送请求;2xx表示请求已被服务器成功接收、理解和接收;3xx表示需要客户端采取进一步的动作来完成请求,通常用于重定向(每次请求使用的重定向不超过5次);4xx表示客户端错误,请求可能有误,阻碍了服务端的处理;5xx表示服务器在处理请求时发生内部错误;常见的状态码有:101切换协议,200,服务器已经成功处理请求并提供请求的网页,201,用户成功创建或修改数据,202,请求进入后台,204,用户如果删除成功,301永久重定向表示资源已经分配了新的URL。302临时重定向表示资源临时分配了一个新的URL。304未修改(用户上次请求未更新,节省带宽和开销),307,临时重定向,含义与302类似,但希望客户端保持请求方式不变,向新地址发送请求.400BadRequest,请求报文中存在语法错误,401Unauthorized,请求需要认证,403Forbidden,服务器拒绝执行请求,404Notfound,服务器找不到请求的网页500服务器遇到errorandcouldnotcompletetherequest503Theserveriscurrentlyunavailable请求的网页没有被修改,服务器返回此响应时不会返回网页内容。302:历史移动,服务器当前响应来自不同位置的网页的请求,但是请求者应该继续使用原来的位置继续以后的请求使用'请求-响应'模式,当使用普通模式时,每次请求客户端和服务器必须建立一个新的连接。keep-active表示浏览器希望优先使用的连接类型:开启持久连接。此功能使客户端-服务器连接保持活动状态。此功能可避免在对服务器发出后续请求时建立或重新建立连接。DNS:1.什么是DNS域名解析系统。将用户输入的URL解析为IP地址。二、DNS相关的性能优化1、减少DNS查找,避免重定向。浏览器DNS缓存、电脑DNS缓存、服务器DNS缓存,使用Keep-Alive功能减少DNS查找。2.DNS预解析:可以使用meta信息告知浏览器可以使用link标签强制DNS预解析TCP/IP1、tcp/ip四层模型:应用层:用于文件传输,提供文件传输协议(ftp、dns、http)传输层:提供端到端接口,提供网络连接中两台计算机之间传输数据所需的协议(tcp/udp)网络层:数据如何传输路由到达对方计算机并发送到对方数据链路层:带地址帧的传输TCP:1.三次握手第一次握手:客户端发送请求链接,等待服务器确认第二次握手:服务器向客户端发送一个链接,告诉客户端他已经收到第三次握手的请求:客户端收到服务器的数据包,并向服务器发送确认数据包。数据包发送后,进入连接状态。2.挥手四次了解过程。HTTPS:一、HTTPS的工作原理当客户端使用HTTPS与Web服务器通信时,有以下步骤:当客户端使用httpsurl访问服务器时,需要Web服务器建立SSL连接。Web服务器收到客户端的请求后,会将网站的证书(证书中包含公钥)传送给客户端。客户端和Web服务器开始协商SSL连接的安全级别。客户端浏览器通过双方约定的安全级别建立会话密钥,然后传递网站的公钥。将会话密钥加密后发送给网站web服务器,通过自己的私钥对会话密钥进行解密。Web服务器通过会话密钥加密与客户端的通信。二、HTTPS和HTTP的区别1、HTTPS协议需要证书发证机构申请证书,免费证书很少,需要付费。2、HTTP在tcp之上传输,以明文传输;HTTPS运行在ssl之上,所有信息都是加密传输的。3、使用的连接方式不同,端口号也不同。HTTPS协议的端口号是443,HTTP协议的端口号是804.http的连接非常简单,无状态;https是通过ssl+https协议构建的协议,可以进行身份??认证和加密传输,优于http协议SecureCDN:1、什么是CDN及其应用场景?CDN是一种内容分发网络,其核心功能是提高网络的访问速度。多用于访问量大的网站,如大型企业网站、政府网站、电子商务网站等。2、CDN的后台是什么?当CDN缓存服务器没有满足客户端要求的资源时,缓存服务器会请求上级缓存服务器,以此类推,直到获取到。最后如果还是没有,我们就去自己的服务器上获取资源。浏览器缓存:缓存是性能优化中最简单高效的优化方法。一个数据请求可以分为三个步骤:网络请求、后端处理、浏览器响应。浏览器缓存可以在网络请求和浏览器响应阶段执行性能优化。浏览器的缓存策略一般有两种,强缓存和协商缓存,缓存策略是通过设置HTTP请求头来实现的。浏览器对缓存的处理是根据第一次请求资源时返回的响应头来决定的。浏览器每次发送请求,都会先在浏览器缓存中查找请求的结果和缓存ID。浏览器每次获取到返回的请求结果后,都会将结果和缓存标识保存在浏览器缓存中。强缓存:不向服务器发送请求,直接从缓存中读取资源。在chrome控制台的Network选项中,可以看到请求返回状态码为200,Size显示fromdiskcache或frommemorycache。可以通过设置两个HTTPHeaders来实现强缓存:Expires和Cache-Control。1.expires,缓存过期时间,用于指定资源过期的时间,是服务器端的具体时间点。Expires受当地时间限制。如果本地时间被修改,缓存可能会失效。2.在请求头或响应头中可以设置catch-Control,可以多条指令组合。常见的指令有:public、private、max-age、mac-state、min-fresh。两者的区别:Expries是http1.0的产物,Cache-Control是http1.1的产物。如果两者同时存在,则Cache-Control优先级高于Expries协商缓存:强缓存失效后,浏览器进程向带有缓存标识的服务器发送请求,由服务器决定是否使用根据缓存标识符进行缓存。协商缓存可以通过设置两个HTTP标头来实现:Last-Modified和ETag。1、协商缓存生效,返回304和NotModified。2、协商缓存失败,返回200和请求结果。3、Last-Modified和If-Modified-Since,根据文件修改时间来判断缓存。If-Modified-Since是和这个资源在服务器上的最后修改时间比较,如果没有变化就是304,如果有变化就是200。这种方法的缺点是如果文件在可察觉的时间内没有被修改,服务器仍然会认为资源被命中,不会返回正确的资源。4、ETag和If-None-Match,根据文件内容是否被修改决定是否缓存。如果客户端发送的If-None-Match与服务端资源的ETag进行比较,相同则返回304,不同则返回200。两者的区别:在精度上,由于Last-Modified,ETag在性能上的优先级低于Last-Modified。应优先考虑ETag。强缓存优先于协商缓存。如果强制缓存生效,则直接使用缓存。执行协商缓存。经典老生常谈的问题:从输入网址到显示页面,发生了什么?dns地址解析=>tcp连接=>发送http请求报文=>服务器处理请求返回http报文=>浏览器渲染解析界面=>连接结束
