前端HTTP相关知识点以及面试重点

1.http状态码

1.1状态码的五种类型

  • 1xxx:表示服务器收到请求
  • 2xxx:表示请求成功
  • 3xx:表示重定向
  • 4xx:表示客户端错误
  • 5xx:表示服务端错误

1.2常见的状态码

  • 200:客户端发送给服务端的请求被成功处理并返回
  • 301:永久重定向。浏览器会把跳转后的地址缓存下来,下一次就不必发送这个请求了,直接跳转。永久重定向一般用于旧的域名跳到新的域名这些。
  • 302:临时重定向。浏览器不会缓存跳转后的地址,下一次还是会发送这个请求,因为不知道下一次还需不需要继续跳转,它只是临时重定向。临时重定向一般用于未登陆的用户访问用户中心重定向到登录页面。
  • 304:资源未被修改。
  • 404:服务器无法找到请求的资源
  • 403:服务器拒绝这次方法,权限不够
  • 500:服务器错误
  • 503:服务器暂时处于超负载或正在进行停机维护,现在无法处理请求

2.什么是Restful API

Restful API:把url当作资源,用http方法(get、post、put、delete)来表示对资源进行增删改成。(尽量不是用问号传参)
传统API:把url当作一个功能

设计一个获取用户信息的API
传统API:/api/user/getUserMsg?id=10
RestfulAPI: /api/user/10 使用get方法

3.常见的header

3.1 header的类别:

request header:

  • accept:浏览器能接收的数据格式
  • accept-encoding:浏览器能接受的压缩算法。如gzip
  • Host:发送请求的域名
  • Content-type:当要向服务器发送数据的时候,表明数据的类型。如application/json
  • Connection:keep-alive 表示一次tcp请求重复使用
  • cookie
  • User-Agent:浏览器信息

response header

  • Content-type:表示返回数据的格式。如application/json
  • Content-length:表示返回数据的大小
  • Content-encoding:表示压缩数据的算法

注:还可以自己自定义header

4.http的缓存

缓存:我们可以把一些没有必要重新获取的东西不再重新获取。
为什么要使用缓存:可以让我们浏览器打开页面的速度加快。

4.1 缓存的类别:

强缓存:客户端在第一次请求服务端的时候,服务器会返回对应的数据以及cache-controll这个响应头,数据会被缓存下来。例如:cache-controll的值是max-age=1000,表示在1000秒之内,不用再向服务器请求数据,而是直接再本地读取。在过了1000s之后,再请求这个资源的时候,就需要向服务器重新发送请求,返回对应的数据和cache-controll。
在这里插入图片描述
cache-controll:这个响应头的值一般是max-age=xxx秒或者no-cache。max-age表示缓存的过期时间,单位是秒。no-cache是不走强制缓存,但是可能会走协商缓存。
协商缓存(对比缓存):第一次请求数据的时候,服务器会返回数据以及资源标识,下次请求的时候,就会带着之前的资源标识过去,与服务端的进行对比,如果一样,就返回状态码304,读取本地的缓存;如果不一样,就返回新的数据以及新的资源标识。
response返回的header资源标识有两种:

  • Last-Modified:表示资源的最后修改时间。
  • Etag:表示资源的唯一标识。(一个字符串)

在这里插入图片描述
request header请求携带的资源标识:

  • If-Modified-Since:就是客户端发送过来的资源最后修改时间。跟Last-Modified相对应
  • If-None-Match:就是客户端发送过来的资源的唯一标识(一个字符串)。跟Etag相对应

注:在协商缓存中,如果同时存在Last-Modified和Etag,应该以Etag为准,因为你有可能按了两次保存,最后修改时间变了,但是里面的内容没有变。Last-Modified就会改变,但是Etag不会变。

5.http缓存总的流程图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值