http协议B站

本文介绍了HTTP协议中的缓存机制,包括Cache-Control、public、private、must-revalidate等属性的使用,以及last-modified和etag的缓存验证方式。强调了HTTP缓存对性能提升的重要性,适合前端和后端开发者深入学习。此外,还提及了TCP的三次握手、HTTPS的创建过程以及HTTP的发展历程,对于理解HTTP在网络通信中的作用至关重要。
摘要由CSDN通过智能技术生成

                                                        前言

 

http例子:

  1. 输入url打开网页

  2. ajax获取数据

  3. img标签加载图片

 

cache-control

Cache-Control:max-age=100  ##设置对应的静态资源缓存100s(设置缓存过期时间为100s)

通过给Cache-Control

  1. 设置public、private来控制是只能在客户端进行缓存,还是可以通过代理服务器进行缓存

  2. 设置must-revalidate在缓存过期之后必须要到服务端验证过才能继续使用缓存

  1. 设置no-cache、no-store可以控制我们是否使用缓存

 

缓存验证:(缓存的可用性)

缓存是存储在客户端的,客户端并不知道服务端是否有改变缓存的这部分数据,缓存有时候就需要进行一个验证

  1. 通过last-modified配合if-modified-since进行验证

  1. 通过etag配合if-none-match来来进行验证

 

总结:

不要以为缓存知识只有Cache-Control:max-age=100 来设置过期时间,缓存是web服务中对性能提升最大的一环

所以深入理解http缓存对web开发不论是前端人员或者后端人员都非常重要

 

更多有意义的头(http的头)

  1. Content-Type、Content-Encoding等来约束数据类型

  2. cookie保持会话信息(常见的session方案就是通过cookie来进行一个实现)

  1. CORS实现跨域并保持安全性限制(如果跨域的服务对所有人进行开放,那么每个人都能进行访问,因此可能受到违法连接)

 

深入tcp

  1. 什么是三次握手

  2. https链接的创建过程,以及为什么https就是安全的

  3. 什么是长链接,为什么需要长链接

  4. http2的信道复用有为什么能提供性能

 

 

带来好处

  1. 对于后端开发,你能够打造性能更好的http服务

  2. 对于前端开发,你能够好得使用http的特性帮助你进行开发

  3. 能够帮助前后端更好的协作

 

基础:

  1. 知道HTTP概念,知道html是什么,浏览器是怎么样的一个东西,有web服务存在,浏览器通过和web服务沟通才能拿到数据

  2. 想要深入学习http

 


 

 

                                               浏览器输入url后http请求返回的完整过程

 

 

 

 

浏览器的api里面的一个performance,performance会记录所有的时间点,时间过程的消耗会通过api进行记录

可以知道哪一个时间点耗时很长,可以对此时间点进行优化

 

请求过程解析:(数据加载过程时间点)

  1. 发起请求:浏览器输入url -->

  2. redirect:浏览器记录这个地址已经永久的跳转到一个新的地址,所以一开始浏览器需要判断一下需不需要进行redirect以及要redirect到哪里 -->

  3. 看缓存(App cache):可能请求的资源已经缓存过了,要看app cache缓存里是否有,如果没有缓存就要去实际的服务器那边去请求资源---->

  4. DNS(DNS查找):因为输入的是域名,域名要对应成ip之后,我们才能真正的访问到服务器,需要查找域名对应的ip地址,这一步是dns解析--->

  5. TCP链接:DNS解析到了ip之后,要创建TCP链接,创建TCP链接要经过TCP的三次握手之后,才能真正的把链接创建起来,如果这个请求是https的,那么要创建一个https的链接,和TCP的三次握手不一样,中间要有一个保证安全的数据传输过程---->

  1. Request(发送请求包):链接创建好之后才发送一个http的请求数据包---->

  1. Response(接收响应)    :请求包发送之后,服务器接收到这个数据,进行一个数据操作之后,返回我们这个请求想要的内容,开始返回数据,返回数据之后,这个请求才真正的完成


                                                             

                                                                         网络协议分层

 

 

 

网络传输过程:

http协议在应用层上,但是基于传输层的TCP协议,ip是网络层

 

低三层(web应用不太涉及,了解一下)

  1. 物理层主要作用是定义物理设备如何传输数据(网卡、端口、网线传输数据)

  2. 数据链路层在通信的实体间建立数据链路连接   (010101)

  3. 网络层为数据在结点之间创建逻辑链路

 

传输层:

TCP协议,udp协议

  1. 向用户提供可靠的端到端(End-to-End)服务:建立了客户端到baidu服务端的链接之后,二者两端如何去传输数据,传输数据的方式是在这一层进行定义的,如传数据数据可能很小可能很大,如果传输的数据很大,不能一次性传输,要对数据进行分包、分片,传输到客户端之后,要组装数据,这一个过程的定义,是在传输层定义的

  1. 传输层向高层屏蔽了下层数据通信的细节:http协议是是实现在TCP/IP协议基础上的,http协议传输数据只需要在浏览器上输入一个url,就自动发送一些相关的数据到服务器端,服务器端解析请求数据返回结果给浏览器端,然后浏览器把

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值