HTTP 与 HTTPS

HTTP 协议

HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议.
是服务器传输超文本到本地浏览器的传送协议。

在这里插入图片描述

HTTP 的请求发送出去,就需要从应用层到物理层,层层封装
接收方接收到后,就需要从物理层到应用层,层层分用,才能完成传输
在这里插入图片描述

  • 协议

为了使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式。

HTTP 的工作过程

http 是一种 “一问一答” 形式的协议 , 即 一个请求 -> 一个响应 。
在这里插入图片描述

Fiddler 抓包工具

学习 HTTP 就要认识其 报文格式 ~

抓包工具 Fiddler :本质上相当于一个 “代理” ,借助它可看到网络上传输的具体数据 。

在这里插入图片描述
在这里插入图片描述

  • 为什么 HTTP 报文中要存在 “空行”?

因为 HTTP 协议并没有规定报头部分的键值对有多少个. 空行就相当于是 “报头的结束标记”, 或者
是 “报头和正文之间的分隔符”.
HTTP 在传输层依赖 TCP 协议, TCP 是面向字节流的. 如果没有这个空行, 就会出现 “粘包问题”.

URL

平时我们俗称的 “网址” 其实就是说的 URL (Uniform Resource Locator 统一资源定位符).
互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它.

在这里插入图片描述

  • method

在这里插入图片描述

  • GET 和 POST 方法有啥区别?

没有本质区别(只是使用习惯有差异)

  1. GET 习惯上表示 获取 , POST 习惯上表示提交
  2. GET 一般没有 body , 需要携带数据放到 URL 中, POST 一般有 body
  3. GET 请求通常会设计成幂等的 , POST 则无要求
  4. GET 是可缓存的(前提是幂等), POST 则不能
    (幂等:输入一定,其输出也是一定的)
    (缓存:计算机把结果记住了(提高响应速度))

HTTP 请求格式:

在这里插入图片描述

  1. HOST 属性:我们访问服务器不一定是直接访问,而通过 “代理” 来访问的,那么 HOST 就指向最终目标,URL 指向当前目标。
  2. Content-Type: 描述了 body 的数据格式 (知道了格式服务器才能正确解析)
  3. Content-Length: 描述了 body 的长度(字节)
  4. query string(查询字符串) :对你访问的资源进行一个补充说明
  5. User-Agent :描述了浏览器/系统的版本(手机/平板/PC)
  6. referer : 描述了当前这个页面是从哪个页面跳转来的
  7. cookie : 浏览器在 本地存储 用户自定义数据的一种关键机制

HTTP 响应格式:

在这里插入图片描述

  • 状态码

在这里插入图片描述

通过 form 表单构造 HTTP 请求

form 是 HTML 中的一个表单标签,可以用于给服务器发送 GET 或者 POST 请求。

GET:
在这里插入图片描述
POST:
在这里插入图片描述

在这里插入图片描述
在构造的页面中,输入数据后,进行提交,我们再通过抓包,查询到了以下结果

  • GET

在这里插入图片描述

  • POST
    在这里插入图片描述
    在这里插入图片描述

通过 PostMan 构造 HTTP 请求

在这里插入图片描述

HTTPS

  • HTTPS 是什么

HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层.
HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况.

  1. 明文 :实际要传达的信息
  2. 密文 :加密后的信息
  3. 密钥 :加密 和 解密时使用 (key)
  4. 对称加密 :(明文 + key = 密文) (密文 + key = 明文)
    公用一个key,速度快,成本低
  5. 非对称加密 :两个密钥: 公钥(pub),私钥(pri)
    在这里插入图片描述

HTTPS 的基本过程

  1. 使用对称密钥
    在这里插入图片描述
    在这里插入图片描述

(每个客户端的密钥都不相同,要求客户端在连接到服务器时,自己先生成一个密钥)

但是服务器如何拿到 客户端这个 key 呢?(直接发送黑客仍会截获)

  1. 使用非对称密钥
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值