web前端面试高频考点——HTTP 篇

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: web前端面试高频考点——HTTP 篇

http 面试题

一、http 常见状态码

1、状态码分类

  • 1xx 服务器收到请求
  • 2xx 请求成功,如 200
  • 3xx 重定向,如 302
  • 4xx 客户端错误,如 404
  • 5xx 服务端错误,如 500

2、常见状态码

  • 200 成功
  • 301 永久重定向(配合 location,浏览器自动处理)
  • 302 临时重定向(配合 location,浏览器自动处理)
  • 304 资源未被修改
  • 404 资源未找到
  • 403 没有权限
  • 500 服务器错误
  • 504 网关超时

二、什么是 Restful API

1、传统的 methods

  • get 获取服务器数据
  • post 向服务器提交数据
  • 简单的网页功能,就这两个操作

2、现在的 methods

  • get 获取数据
  • post 新建数据
  • patch/put 更新数据
  • delete 删除数据

3、Restful API

  • 一种新的 API 设计方法(早已推广使用)
  • 传统 API 设计:把每个 url 当作一个功能
  • Restful API 设计:把每个 url 当作一个唯一的资源

4、如何设计一个资源

  • 尽量不用 url 参数
  • 用 method 表示操作类型

5、不使用 url 参数

传统 API 设计:/api/list?pageIndex=2

Restful API 设计:/api/list/2

6、用 method 表示操作类型

传统 API 设计


post 请求:/api/create-blog

post 请求:/api/update-blog?id=100

get 请求:/api/get-blog?id=100

Restful API 设计

  • post 请求:/api/blog
  • patch 请求:/api/blog/100
  • get 请求:/api/blog/100

三、http 常见 header

1、Request Headers

Accept 浏览器可接收的数据格式

Accept-Encoding 浏览器可接收的压缩算法,如 gzip

Accept-Language 浏览器可接收的语言,如 zh-CN

Connection:keep-alive 一次 TCP 连接重复使用

cookie:储存在用户本地终端上的数据

Host:请求的域名

User-Agent(简称 UA)浏览器信息

Content-type 发送数据的格式,如 application/json

2、Response Headers

Content-type:返回数据的格式,如 application/json

Content-length:返回数据的大小,多少字节

Content-Encoding:返回数据的压缩算法,如 gzip

Set-Cookie:服务器端向用户代理发送 cookie

3、缓存相关的 headers

四、Cache-Control - http 强制缓存

1、Cache-Control

  • Response Headers 中
  • 控制强制缓存的逻辑
  • 例如:Cache-Control:max-age=31536000 (单位:秒)

图片出处:https://coding.imooc.com/lesson/400.html#mid=36807

485149645d844368a546e194206327f6.png

d36c5b2d90a641e7a334aa239371f756.png

2、cache-control 的值

max-age:做本地的强制缓存(限制缓存时间)

no-cache:不做本地的强制缓存,去服务端请求(如html)

no-store:不做本地的强制缓存,也不用服务端做缓存

private:只有某个在通过缓存服务器的时候,得到缓存资源

public:所有的用户在通过缓存服务器的时候,都可以缓存这个资源

3、关于 Expires

  • 同在 Response Headers中
  • 同为控制缓存过期
  • 已被 Cache-Control 代替

五、协商缓存

  • 服务器端缓存策略
  • 服务器判断客户端资源,是否和服务端资源一样
  • 一致则返回 304,否则返回 200 和最新的资源

图片出处:https://coding.i3b1a7fd1973049a197bce5998e94728f.pngmooc.com/lesson/400.html#mid=36668

3b1a7fd1973049a197bce5998e94728f.png


1、资源标识

  • 在 Response Headers 中,有两种
  • Last-Modified 资源的最后修改时间
  • Etag 资源的唯一标识(一个字符串,类似人类的指纹)

图片出处:https://coding.imooc.com/lesson/400.html#mid=36668

813ae526f31e4214b3adf7e450495e45.png

40ec8e5214c041c79c0a3d77d59ae4b2.png

2、headers 示例

097c384c8b884edd8dbfde857789fb2f.png

3、请求示例

d4185e7a8d6c4f4ebb0f252ec4a81270.png

4、Last-Modified 和 Etag

  • 会优先使用 Etag
  • Last-Modified 只能精确到秒级
  • 如果资源被重复生成,而内容不变,则 Etag 更精确

5、http 缓存综述

8f41b18790ee4d98b2e600fec0ddfd18.png

六、刷新页面对 http 缓存的影响

1、三种刷新操作

  • 正常操作:地址栏输入url,跳转链接,前进后退
  • 手动刷新:F5,点击刷新按钮,右击菜单刷新
  • 强制刷新:ctrl + F5

2、不同刷新操作,不同的缓存策略

  • 正常操作:强制缓存有效,协商缓存有效
  • 手动刷新:强制缓存失效,协商缓存有效
  • 强制刷新:强制缓存失效,协商缓存失效

七、http 加密方式

须知:

  • http 是明文传输,敏感信息容易被中间劫持
  • https = http + 加密,劫持了也无法解密
  • 现代浏览器已开始强制 https 协议
  • 加密方式:
  • 对称加密:一个 key 同负责加密、解密
  • 非对称加密:一对 key,A 加密之后,只能由 B解密
  • https 同时用到了这两种加密方式

八、https 证书

  • 中间人攻击
  • 使用第三方证书(慎用免费、不合规的证书)
  • 浏览器校验证书

总过程图:

image.png

出处:https://coding.imooc.com/lesson/400.html#mid=47935

不积跬步无以至千里 不积小流无以成江海

相关文章
|
2月前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
69 3
|
2月前
|
缓存 安全 网络安全
HTTP/2与HTTPS在Web加速中的应用
HTTP/2与HTTPS在Web加速中的应用
|
2月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
2月前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
42 3
|
2月前
|
Java 程序员
面试高频考点!关于构造方法的那些事儿
本文介绍了Java中的构造方法,包括其基本概念、默认构造方法、构造方法的重载、构造方法的细节以及执行顺序。通过具体示例,详细解释了构造方法在对象初始化中的重要作用,帮助读者在面试中更好地应对相关问题。
34 1
|
3月前
|
安全 网络协议 算法
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
266 4
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
|
2月前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
70 1
|
3月前
|
Java 程序员
Java 面试高频考点:static 和 final 深度剖析
本文介绍了 Java 中的 `static` 和 `final` 关键字。`static` 修饰的属性和方法属于类而非对象,所有实例共享;`final` 用于变量、方法和类,确保其不可修改或继承。两者结合可用于定义常量。文章通过具体示例详细解析了它们的用法和应用场景。
44 3
|
4月前
|
Web App开发 前端开发 Linux
「offer来了」浅谈前端面试中开发环境常考知识点
该文章归纳了前端开发环境中常见的面试知识点,特别是围绕Git的使用进行了详细介绍,包括Git的基本概念、常用命令以及在团队协作中的最佳实践,同时还涉及了Chrome调试工具和Linux命令行的基础操作。
「offer来了」浅谈前端面试中开发环境常考知识点
|
5月前
|
存储 XML 移动开发
前端大厂面试真题
前端大厂面试真题