http相关

1 概念

1.1 http

HTTP(hypertext transport protocol)协议也叫超文本传输协议,这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。

  • 明文传输,敏感信息容易被中间劫持。
  • HTTP协议是一个无状态的协议,它无法区分多次请求是否发送自同一客户端。无状态,cookie解决了无状态的问题。

1.2 HTTPS

HTTPS更安全,同时使用了对称加密和非对称加密。

对称加密:key负责加密解密。可劫持key和加密字符串。

非对称加密:A加密,B解密。key在服务端用来解密;解密后随机码在服务端;key对称加密。但是中间人攻击可能会置换publicKey,所以使用浏览器来校验第三方证书。

cc9b19bb56e1305199ceb10bf04087b7.png

2 请求过程

客户端发送给服务器的称为“请求报文”,服务器发送给客户端的称为“响应报文”。

2.1 请求报文:

请求行:method/url

请求头:Host / Cookie / Accept / User-Agent=浏览器信息

        Content-Type =application/json或者application/x-www-form-urlencoded或者multipart/form-data

请求体:(post才有,get没有)

        json:{"name":"zhangsan","pwd":123 }/

        urlencoded:name=zhangsan&pwd=123/

        form-data:文件上传

2.2 响应报文:

响应状态行:status / statusText

响应头:Set-Cookie / Content-Type=application/json;charset=utf-8

响应体:js/img/css/json/html文本

2.3 http状态码的分类

1xx : 服务器已经收到了本次请求

2xx : 请求成功

3xx : 服务器还需要其他的资源;即重定向,配合响应头中的Location,浏览器自动处理

4xx :一般指请求的参数或者地址有错误,即客户端错误

5xx :服务器内部错误

200 :成功

301 :永久重定向,被请求的旧资源永久移除了(不可以访问了)

302 :临时重定向,被请求的旧资源还在(仍然可以访问)

304 :请求资源重定向到缓存中(命中了协商缓存)

403:没有权限

404 :资源未找到,一般是客户端请求了不存在的资源。

500 :服务器内部产生了错误。

504:网关超时

2.4 请求方式

同一个url根据请求方式决定CRUD,称为rest api(npm i json-server -g)

get请求:从服务端读取数据,一般用于查询操作。url地址栏发送请求;点击a标签发送请求;Form表单没有填写(method: post)时发送的请求。

        params参数得到对象:/posts/1

        query参数得到数组:/posts?id=1

post请求:向服务端添加新数据,一般用户提交操作。Form表单method: post时发送的请求。易于防止CSRF攻击

        GET使用URL或Cookie传参,而POST将数据放在BODY中

put:更新服务端数据。

delete:删除服务端数据。

3 缓存

浏览器在本地磁盘上将用户之前请求的数据存储起来,当访问者再次需要改数据的时候无需再次发送请求,直接从浏览器本地获取数据,减少网络请求。

3.1 强缓存

e5dfa0ddde51a5818acbaa0d0e4da4b3.png

强缓存:直接从本地缓存中获取数据,状态码为: 200

  1. Cache-Control(响应头):max-age=315360000(相对时间),共存的时候cache-control的优先级高
  2. Expires:绝对时间

3.2 协商缓存

0ed25d8c96aa1ed0f4b78bc63bacbb16.png

协商缓存:向服务器发送请求,服务器会根据请求头的资源判断是否命中协商缓存。如果命中,则返回304;否则返回200和最新的资源。

        Last-Modified(响应头)/If-Modified-Since(请求头):资源在服务器上的最后修改时间

        仅仅改变的修改时间;在秒以下的时间内进行修改

        Etag/If-None-Match:由服务器生成的每个资源的唯一标识字符串,优先验证ETag

e27e77cba18b17db1cda11b7d1f3842e.png

3.3 刷新对缓存的影响

正常操作:浏览器输入url,跳转链接,前进后退
         强制缓存有效,协商缓存有效
手动刷新:F5,点击刷新按钮,右击菜单刷新, command+R
        强制缓存失效,协商缓存有效
强制刷新:Ctrl+f5/ shift+command+R
        强制缓存失效,协商缓存失效

4 CDN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值