奢侈品的网站设计,黄页网站软件应用大全,系统优化,网站建设平台官网1. 当用户在浏览器输入网址回车之后#xff0c;网络协议都做了哪些工作#xff1f;
首先解析出URL中的域名#xff0c;根据域名获取对应的ip地址#xff0c;从浏览器缓存中查看#xff0c;如果没有则从本机域名解析文件hosts中查看#xff0c;还没有则从DNS的层层解析。…1. 当用户在浏览器输入网址回车之后网络协议都做了哪些工作
首先解析出URL中的域名根据域名获取对应的ip地址从浏览器缓存中查看如果没有则从本机域名解析文件hosts中查看还没有则从DNS的层层解析。 获取IP地址后浏览器发起与服务器的三次握手。 握手建立之后开始组装http请求报文发送报文。 服务器收到请求报文之后开始请求报文解析生成响应数据发送响应数据。 浏览器收到响应之后开始渲染页面。
2. TCP协议
面向连接的、可靠的、基于字节流的传输通信协议。 特点基于连接的数据传输之前需要建立连接全双工双向传输字节流不限制数据大小打包成报文段保证有序接收重复报文自动丢弃流量缓冲解决双方处理能力的不匹配可靠的传输服务保证可达丢包时通过重发机制实现可靠性拥赛控制防止网络出现恶性阻塞。 TCP连接四元组源地址、源端口、目的地址、目的端口
三次握手 客户端向服务器发送一个SYN报文同步报文其中包含客户端的SYN序列号seqx。 服务器收到SYN报文后向客户端回复一个SYN-ACK报文表示同意建立连接其中包含服务器和客户端的SYN序列号seqy和ackx1。 客户端收到SYN-ACK报文后向服务器发送一个ACK报文确认连接建立其中包含客户端的ACK序列号seqx1和acky1。
三次握手的作用 防止已失效的连接被当作新连接。通过三次握手客户端和服务器都确认了彼此的存在和连接参数避免了已失效的连接被当作新连接的情况。 确保连接的可靠性。三次握手可以确认双方都理解连接的建立过程并且能够正常地接收和发送数据。 提高网络效率。三次握手避免了不必要的连接尝试减少了网络拥塞提高了网络效率。
四次挥手 客户端发送FIN报文请求关闭连接此时客户端进入FIN_WAIT_1状态。 服务器收到FIN报文后向客户端发送确认报文并进入CLOSE_WAIT状态。 服务器完成所有任务后向客户端发送FIN报文请求关闭连接此时服务器进入LAST_ACK状态。 客户端收到FIN报文后向服务器发送确认报文并进入TIME_WAIT状态。
四次挥手的作用 客户端发送FIN报文表示客户端不再发送数据请求释放连接。 服务器收到FIN报文后向客户端发送确认报文表示同意释放连接。 服务器完成所有任务后向客户端发送FIN报文表示服务器不再发送数据请求释放连接。 客户端收到FIN报文后向服务器发送确认报文表示同意释放连接。
3. 浏览器缓存策略
浏览器缓存减少了沉余的数据传输节省了网费减少了服务器的负担大大提升了网站的性能加快了客户端加载网页的速度 浏览器缓存主要有两类协商缓存、彻底缓存也称协商缓存和强缓存。
强制缓存不会向服务器发送请求直接从缓存中读取资源在chrome控制台的network控制台的network选项中可以看到请求返回200的状态码。
协商缓存在使用本地缓存之前需要向服务器发送请求服务器会根据这个请求的request header的一些参数来判断是否命中协商缓存如果命中则返回304状态码并带上新的response header通知浏览器从缓存中读取资源协商缓存可以解决强制缓存的情况下资源不更新的问题。
强制缓存中header参数 cache-controlmax-age 30强缓存代表这个请求正确返回时间。 cache-control-no-cache协商缓存先与服务器确认返回的响应是否被更改如果之前的响应中在ETag那么请求的时候与服务器端验证如果资源未被更改可以避免重新下载。 cache-control-no-store直接禁止浏览器缓存数据每次用户请求该资源都会向服务器发送请求每次都会下载完整的资源。 cache-control- public可以被所有的用户缓存包括终端用户和cdn等中间代理服务器。 cache-control-private只能被终端用户的浏览器缓存不允许cdn等中间代理服务器缓存。
协商缓存中header参数 cache-control-no-cache不强制缓存 last-modify 最新修改时间if-modify-since浏览器第一次请求一个资源的时候服务器返回的header中会加上last-modifylast-modify是一个时间标识该资源最后修改时间当浏览器再次请求该资源时request的请求头中会包含if-modify-since该值为缓存之前返回的last-modify服务器收到后根据该资源的最后修改时间判断是否命中如果修改时间和服务器的修改时间相同则返回给客户端304表示从客户端缓存中取值服务器不再返回值。
Etag值资源文件对应的hash值if-none-matchweb服务器响应请求时告诉浏览器当前资源在服务器的唯一标识生成规则由服务器决定if-none-macth发现资源具有Etage声明则再次向web服务器请求时带上Etag的值 web服务器收到请求后发现Etag的值与被请求资源的相应校验进行对比决定是否命中协商缓存。
ETag和Last-modified的作用和区别
Etag优于Last-modifiedlast-modified的时间单位是秒如果某个文件在1秒内改变多次last- modified不会体现出来修改时间Etag每次都会改变hash值确保精度。在性能上Etag逊于last- modifiedlast-modified只需要记录最后修改时间而Etag需要通过服务器算法计算出hash值。
4. Http协议规定的协议头和请求头有什么
请求头信息 accept浏览器告诉服务器所支持的数据类型 host浏览器告诉服务器想访问服务器的哪台主机 referer浏览器告诉服务器是从哪里来的防盗链 user-agent浏览器类型、版本信息 date浏览器告诉服务器什么时候访问的 cookie x-request-with请求方式 响应头信息 location告诉浏览器找谁 server告诉服务器类型 content- type告诉浏览器返回的数据类型 refresh控制定时刷新