[HTTP使用指南(2)|青训营笔记]

103 阅读3分钟

这是我参与「第五届青训营 」笔记创作活动的第10天

今天的视频课 [HTTP协议应用场景分析] 及 [HTTP协议实战分析] 是HTTP真实的场景实践,以「今日头条」浏览器为例,为大家展示线上的 demo,对于该案例涉及的请求中的缓存策略展开具体分析,同时将根据不同的环境,介绍在日常的开发中,同学如何实现去发起一个协议,将重点带来浏览器环境的应用实战,进一步基于不同环境下,如何做到网络优化,提升用户体验。。
我把今天老师讲解教授的知识进行了整理和概括,具体内容如下:

1.场景分析

(1).静态资源

我们以Chrome浏览器为例,使用Chrome浏览器打开今日头条网站。通过右键->检查打开调试台,并切换到network查看静态资源。通过观察我们可以看到里面有许多我们上一节课所学的东西。我截取了几张图片方便观看,如下: QQ截图20230202203703.png 好了,那我们再来看看什么是静态资源呢?静态资源方案就是:缓存+CDN+文件名hash。 CND(Content Delivery Network),是通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。

(2).登录

登录的业务场景主要分为:表单登录与扫码登录。登录实现采用的技术是SSO。登录过程中请求是怎么回事,HTTP发生了什么呢?我们可以采用以下方法观察:

  • 账号密码登录
  • 打开控制台-network-勾选preserve log - 过滤quick——login
  • 观察请求

主要的请求结果如下: QQ截图20230202204708.png 我们可以发现登录请求中request method与静态资源不一样,是options,为什么会有options的请求?是因为跨域的问题。跨域通俗点讲,就是协议、端口、域名任一一个不相同就会存在跨域。

那怎么解决跨域?我们可以通过以下几个方法实现:

  • CORS
  • 代理服务器
  • Iframe

另外,上一节课我们知道了HTTP是无状态的,那浏览器是怎么记住我们的浏览记录的呢?主要使用以下方法实现这一功能: QQ截图20230202205633.png

2. HTTP协议实战分析

我们进行了HTTP的场景分析,知道了它是怎么工作的,那我们怎么发起HTTP请求与响应?可以通过以下几种方法:
  1. 浏览器篇

我们可以使用AJAX提供的XHR发起HTTP请求,并接收响应。具体实现如下: QQ截图20230202210050.png 2. node篇

在node中实现HTTP请求,无需安装其他依赖,但是功能有限,具体实现如下: QQ截图20230202210233.png 3.实战

实际开发中我们常用的请求库是axios,它支持浏览器、nodejs环境,具体实现如下: QQ截图20230202210356.png

这节课主要就是带我们进行HTTP协议场景分析及实战分析,并且重点是教会我们浏览器环境的应用实战,进一步基于不同环境下,如何做到网络优化,提升用户体验。好了今天的分享到此结束,我们明天见,希望大家指出不足之处以待改正~~