http笔记

本文详细介绍了HTTP常见的状态码分类、RESTfulAPI的设计原则,包括GET、POST等方法的应用,以及HTTP头中的RequestHeaders、ResponseHeaders,包括缓存策略如强制缓存和协商缓存,以及资源标识的使用。
摘要由CSDN通过智能技术生成

一、http常见的状态码

1.状态码分类

1xx 服务器收到请求

2xx 成功,操作被成功接收并处理

3xx 重定向,需要进一步的操作以完成请求(eg.请求的资源已移动到新的地址)

4xx 客户端错误,请求包含语法错误或无法完成请求

5xx 服务器错误,服务器在处理请求的过程中发生了错误

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参数 

传统API设计:【请求第二页数据 】    /api/list?pageIndex=2

Restful API设计:【请求第二页数据】/api/list/2     // 唯一资源的标识,第二页的一个标识

        ②用method表示操作类型 

传统API设计:

        post请求 【创建一个博客】/api/create-blog 

        post请求 【更新一个博客】/api/update-blog?id=1

        get请求   【获取一个博客】/api/get-blog?id=1 

Restful API设计:

        post请求   【创建新的blog数据】/api/blog            // 整个blog的资源标识

        patch请求 【更新id=1的blog】/api/blog/1             //id=1的资源标识 

        get请求     【获取id=1的blog】/api/blog/1             //id=1的资源标识

三、http常见的header

1.Request Headers

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

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

3.Accept-Language                浏览器可接收的语言,如zh-CH

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

5.cookie                                 每次同域请求资源的时候都会把cookie带上

6.Host                                    请求的域名

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

8.Content-type                       发送数据的格式

2.Response Headers

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

2.Content-length              返回数据的大小

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

4.Set-Cookie                    服务端要去改cookie的时候通过Set-cookie 

3.自定义header

可以在Request Header、Response Header里面自定义header。例如:有些接口要求在headers里加一个密钥才能通过请求,否则认为你是非法请求

4.缓存相关headers

Cache-Control

Expires

Last-Modified

If-Modified-Since

Etag

If-None-Match 

 四、http缓存策略(强制缓存+协商缓存)

1.强制缓存

        (1)Cache-Control 

1.在Response Header中

2.由Cache-Control控制强制缓存的逻辑(本质是由服务端控制的)

3.举例:Cache-Control:max-age=31536000(单位是秒)【把js文件缓存一年的时间】

4.cache-control的值

        max-age 设置缓存过期时间

        no-cache 不用本地缓存,到服务端去请求,至于服务端怎么处理我们不管

        no-store 不用本地缓存,而且不用服务端的一些缓存措施

        private 只允许最终用户做一些缓存(比如电脑,手机,浏览器)

        public 允许中间的一些路由或代理做缓存

        (2)Expires

1.同在Response Headers中

2.同为控制缓存过期

3.已经被Cache-Control代替

2.协商缓存

是服务端缓存策略,即由服务端来判断资源是否能被缓存或是否可以用缓存

服务端判断客户端资源是否和服务端资源一样

怎么告诉客户端:返回304,否则返回200和最新的资源 

1.资源标识在Response Header中

2.资源标识有两种

        Last-Modified 资源的最后修改时间

        Etag 资源的唯一标识(一个字符串,类似人类指纹不重复)

3.优先使用Etag(如果资源被重复生成,而内容不变,则Etag更精确(Etag是根据内容计算的))

 

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值