HTTP细解

一.OSI 的七层模型


图片.png

二、握手
1.简单理解
1)C:你收到了吗 --> S:我收到了,你能收到吗? --> C:我能收到


图片.png

三、Http 报文简介


图片.png
  1. 请求首部字段
    Accept:用户代理可处理的媒体类型
    Accept-Charset:优先的字符集
    Accept-Language:优先的语言(自然语言)
    Accept-Encoding:优先的内容编码
    If-Modified-Since:比较资源的更新时间
    If-Range:资源未更新时发送实体 Byte 的范围请求
    Cookie: 设置Cookie
图片.png

图片.png
  1. 响应首部字段
    Cache-Control:控制缓存的行为
    1)public
    2)private
    3)no-cache:这里是要缓存,比较特殊
    4)max-age:比较特殊
    4)no-store(不缓存)
    set-Cookie: 设置Cookie(下面会单独讲)
    Location:令客户端重定向至指定 URI
    Expires:缓存的过期策略)实体主体过期的日期时间
    Last-Modified:(资源的最后修改日期时间304:文件没修改,服务器直接返回(前提服务器做了)
    Status Code: 响应的状态码
    1xx: Infomational (信息状态码) ,接收的请求正在处理
    2xx: Succeed(成功),请求正常处理完毕,如 200,204
    3xx: Redirection(重定向),需要进行附加操作,一般是没有响应数据返回的,如 304(Not,modified)307
    4xx: Client Error (客户端的错误),服务器无法处理请求,如 404,405
    5xx: Server Error (服务端的错误),服务器处理请求出错,如 500,502

3.Cookie、Session 和 Token
1) 它们都是用作持久化处理的,目的是让客户与服务端相认识。请求默认是不持久的无状态,互不认识。
2) Cookie: 是存放在客户端的信息,服务器通过响应头 Set-Cookie 字段给客户端,cookie过期会被清除。没过期会在下次访问网站将cookie带给服务器
3) Session: 是存放在服务器上面的客户端临时信息,用户离开网站是会被清除的。
4) Token(App)"令牌":用户身份的验证,有点类似于 Cookie ,相对来说更安全,一般流程:
1): 客户端向服务端申请 Token
2): 服务端收到请求,会去验证用户信息,签发一个 Token 给客户端,服务端自己也会保存 Token
3):客户端收到服务端签发的 Token 会保存起来,每次请求带上 Token
4):服务器收到其他请求,会去验证客户端的 Token , 如果成功返回数据,不成功不做其他处理

四、HTTP缓存
1.Cache-Control(缓存策略):Public、private、no-cache、max-age 、no-store(不缓存)
2.Expires(缓存的过期策略):指名了缓存数据有效的绝对时间,告诉客户端到了这个时间点(比照客户端时间点)后本地缓存就作废了,在这个时间点内客户端可以认为缓存数据有效,可直接从缓存中加载展示。

五、HTTP和HTTPS区别
1.Https = Http + 加密 + 验证 + 完整

2.Http 的缺点:
  数据是没有加密传输,可能会遭遇窃听;
 不验证通信方的身份,可能会遭遇伪装;
 无法验证报文的完整性,可能会遭遇篡改。
图片.png

你可能感兴趣的:(HTTP细解)