HttpNote

  1. 什么是http协议
  2. HTTP缓存技术
  3. HTTP特性
  4. HTTP与HTTPS

什么是http协议

在计算机中两点用来传输超文本数据(图片,文字,音视频等)的协议

常见状态码

  • 1xx 提示信息,表示需要后续操作
  • 2xx 成功,报文已被收到并处理(200,204)
  • 3xx 重定向报告,资源位置已发生变动,需要客户端重新发送请求
  • 4xx 客户端错误
  • 5xx 服务器错误

常见字段

  • Host字段(Host: www.A.com)
  • Content-Length 表示服务器返回的数据长度,与http协议中的回车+换行解决使用TCP协议的粘包问题
  • Connection (Connection: Keep-Alive)客户端要求保持长连接,以便其它请求复用该连接(此处的连接指本次通信所建立的TCP连接)与TCP的Keep-Alive有区别
  • Content-Type/Accept 回应与接受的数据格式
  • Content-Encoding/Accept-Encoding 回应与接受的数据压缩方法

GET与POST区别

  • GET语义从服务器获取指定资源,请求参数一般写在URL中,URL只能支持ASCLL所以GET只允许ASCLL字符,浏览器对URL长度有限制所以GET请求会因为这个原因无法请求过长数据,例子如下:
    GET /index.html HTTP/1.1
    Host: www.baidu.com
    
  • POST则是根据报文body对指定的资源做出处理,请求携带的数据一般写在body当中

安全指请求方法不会破坏服务器资源
幂等指多次执行相同操作结果都相同

GET方法是安全且幂等的,因为都是只读操作,所以对GET请求数据可以做缓存
POST方法是新增或提交数据,可能会修改服务器资源,所以不是安全的且多次提交可能创建多个资源,也不是幂等的

HTTP缓存技术

强制缓存
浏览器判断缓存没有过期,直接使用浏览器本地缓存,由浏览器决定

协商缓存
服务端告知客户端是否可以使用缓存的方式,相关响应码304

HTTP特性

优点

  1. 简单,格式简单,易于理解
  2. 灵活易扩展,各类请求方法等没有固定死,允许自定义和扩充
  3. 应用广泛,跨平台

缺点

  1. 无状态,减轻了服务器负担但是完成关联性操作会非常麻烦
    一般会用Cookie技术解决这个问题

2.明文传输,不安全

HTTP与HTTPS

HTTPS在HTTP层与TCP层加入SSL/TLS协议,使得

  1. 信息加密,交互信息无法窃取(混合加密)
  2. 校验机制,无法篡改通信内容(摘要算法+数字签名)
  3. 身份证书(公钥证书)
  • 混合加密
    在建立通信前用非对称加密算法交换对称加密算法的密钥,之后的通信都用对称加密算法
  • 摘要算法+数字签名
    非对称加密中有两种流程,公钥加密私钥解密,私钥加密公钥解密,前者用于加密通信内容,后者用于数字签名
    私钥对内容的哈希值进行加密,公钥对哈希值进行解密,如果解密后的哈希值与内容的哈希值一致则说明内容没有被篡改
  • 数字证书
    数字证书是由CA机构颁发的,用于证明服务器身份的,包含了服务器的公钥,服务器的信息,CA的公钥被浏览器内置,保证公钥不是被伪造的

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2128099421@qq.com

×

喜欢就点赞,疼爱就打赏