HTTP与HTTPS的理解

一、HTTP协议:

  • 概念:
     (1)HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)。
     (2)它是服务器和客户端进行数据交互的一种形式

  • 组成:
     1.请求报文包括三部分:
      (1)请求行:包含请求方法,URI,HTTP版本协议
      (2)请求首部字段
      (3)求内容实体

     2.响应报文包含三部分:
      (1).状态行:包含HTTP版本,状态码,状态码原因短语
      (2).响应首部字段
      (3).响应内容实体

  • 请求方式:
    1.GET:用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器
    2.POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式
    3.PUT:传输文件,报文主体中包含文件内容,保存到对应URI位置
    4.HEAD:获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效
    5.DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件
    6.OPTIONS:查询响应URI支持的HTTP方法

  • 原理机制:

    • 流程步骤
      1.域名解析-->
      2.发起TCP三次握手-->
      3.发起HTTP请求-->
      4.服务器响应HTTP请求-->
      5.浏览器解析HTML代码并请求HTML代码中资源-->
      6.浏览器对页面进行渲染呈现给用户-->
      7.服务器关闭tcp连接(TCP四次挥手)

    • 域名解析过程
      1.搜索浏览器自身的DNS缓存
      2.搜索操作系统自身的DNS缓存
      3.读取hosts文件
      4.向本地配置的首选DNS服务器发起域名解析请求
      5.查找NetBIOS name Cache
      6.查询WINS服务器
      7.进行广播查找
      8.读取LMHOSTS文件

    • 协议首部字段:
      1.通用首部字段(请求报文与响应报文都会使用的首部字段)
       Date:创建报文时间
       Connection:连接的管理
       Cache-Control:缓存的控制
       Transfer-Encoding:报文主体的传输编码方式

      2.请求首部字段(请求报文会使用的首部字段)
       Host:请求资源所在服务器
       Accept:可处理的媒体类型
       Accept-Charset:可接收的字符集
       Accept-Encoding:可接受的内容编码
       Accept-Language:可接受的自然语言

      3.响应首部字段(响应报文会使用的首部字段)
       Accept-Ranges:可接受的字节范围
       Location:令客户端重新定向到的URI
       Server:HTTP服务器的安装信息

      4.实体首部字段(请求报文与响应报文的的实体部分使用的首部字段)
       Allow:资源可支持的HTTP方法
       Content-Type:实体主类的类型
       Content-Encoding:实体主体适用的编码方式
       Content-Language:实体主体的自然语言
       Content-Length:实体主体的的字节数
       Content-Range:实体主体的位置范围,一般用于发出部分请求时使用

  • 服务器响应状态码
    1. 1XX 临时响应
     指示信息,表示请求已接收,需要请求者继续执行操作
    100 :请求者应该继续提出请求,即服务器已收到请求的一部分,正在等待剩余部分。
      请求者如果请求已经完成,则忽略该反应。
      请求者若干请求为完成,继续发送剩余要求。
      notes:服务器必须在要求完成后向请求者发送一个最终响应。
    101:接受到了请求者切换协议的要求,服务器已收到要求,并准备切换到Upgrade消息头中对应的协议

    2. 2XX 成功
     请求已被成功接收、理解、接受。
    200 请求成功
     根据请求方法的不同而分为下面几类:
      HEAD 实体头已作为响应头传回请求者
      GET 资源已被提取,并作为响应体传回请求者
      POST 经过服务器处理请求者传来的数据,把对应的资源传回请求者
      TRACE 服务器收到请求消息并作为响应体传回请求者
      notes:DELETE、OPTIONS和PUT绝对不会传回200

    201 已创建
      请求成功,并且服务器已创建请求者要求的对应新资源。
      notes:这一般是PUT请求会得到的相应码

    202 已接收
      服务器已接收到请求,但尚未处理,即可以执行,也可能拒绝
      notes:适合在异步操作的场景下

    203 未授权信息
      服务器已处理请求,但是实体头部元信息不属于原服务器上有效的集合。

    204无内容
      服务器已处理请求,但是响应体内无内容,只有响应头。

    205重置内容
      告诉用户代理去重置 发送该请求的窗口 的文档视图

    206 部分内容
      服务器处理了部分请求内容
      notes:请求者通过使用range头字段 进行文件分段下载时

3. 3XX 重定向
想要实现请求必须进行进一步的操作
300 多种选择
  该请求能够有多种响应,需要用户或者用户代理来选择其中一个

301 永久移动
  请求的URI资源路径已发生改变,若可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。

302 临时移动
  请求的URI资源路径临时发生改变,而且有继续改变的可能。但是请求者在今后的访问中,还是要继续使用该URI。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。

  notes:可以用来做临时跳转

4. 4XX 客户端错误
 请求有语法错误或者是请求无法实现
400 错误请求
  请求中存在语法错误,服务器无法读取

401 未授权
  需要经过身份验证后才能够获得请求内容
  notes:必须和WWW-Authenticate报头域配合使

403 禁止访问
  服务器收到请求,但是拒绝访问

404 未找到
  服务器找不到请求的资源

5. 5XX 服务器端错误
 服务器不能实现合法的请求
500 内部服务器错误
  发生不可以预知的错误
501 未实现
  服务器不支持请求的功能
502 网关错误
  服务器作为网关,但是从上游服务器无法收到有效响应
503 服务器无效
  服务器当前不能处理请求者的请求,一段时间后可恢复正常,属于临时问题

  • 特点:
    .简单快速
    .灵活
    .无连接
    .无状态
    解决办法COOKIE
    .支持C/S(Client/Server)模式

  • HTTP协议缺点:
    1)通信使用明文(不加密),内容可能会被窃听
    2)不验证通信方的身份,因此有可能遭遇伪装
    3)无法证明报文的完整性,所以有可能已遭篡改

二、HTTPS协议:

1.概念:
就是HTTP+加密处理(一般是SSL安全通信线路)+认证+完整性保护

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容