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

tech2022-07-04  167

HTTP知识点

1.http状态码1.1状态码的五种类型1.2常见的状态码 2.什么是Restful API3.常见的header3.1 header的类别: 4.http的缓存4.1 缓存的类别: 5.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:浏览器能接受的压缩算法。如gzipHost:发送请求的域名Content-type:当要向服务器发送数据的时候,表明数据的类型。如application/jsonConnection:keep-alive 表示一次tcp请求重复使用cookieUser-Agent:浏览器信息

response header:

Content-type:表示返回数据的格式。如application/jsonContent-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缓存总的流程图

最新回复(0)