[网络]http/https的简单认识

news2025/1/10 17:32:01

文章目录

  • 一. 什么是http
  • 二. http协议工作过程
  • 三. http协议格式
    • 1. 抓包工具fiddler
    • 2. http请求报文
    • 3. http响应报文

一. 什么是http

HTTP (全称为 “超⽂本传输协议”) 是⼀种应⽤⾮常⼴泛的 应⽤层协议
在这里插入图片描述
HTTP 诞⽣与1991年. ⽬前已经发展为最主流使⽤的⼀种应⽤层协议
HTTP 往往是基于传输层的 TCP 协议实现的. (HTTP1.0, HTTP1.1, HTTP2.0 均为TCP, HTTP3 基于UDP 实现)
⽬前我们主要使⽤的还是 HTTP1.1 和 HTTP2.0 . 借来的讲的 HTTP 以 1.1 版本为主
我们平时打开⼀个⽹站, 就是通过 HTTP 协议来传输数据的.
在这里插入图片描述
当我们在浏览器中输⼊⼀个 搜狗搜索的 “⽹址” (URL) 时, 浏览器就给搜狗的服务器发送了⼀个 HTTP请求, 搜狗的服务器返回了⼀个 HTTP 响应.
这个响应结果被浏览器解析之后, 就展⽰成我们看到的⻚⾯内容. (这个过程中浏览器可能会给服务器发送多个 HTTP 请求, 服务器会对应返回多个响应, 这些响应⾥就包含了⻚⾯ HTML, CSS, JavaScript, 图⽚, 字体等信息).
所谓 “超⽂本” 的含义, 就是传输的内容不仅仅是⽂本(⽐如 html, css 这个就是⽂本), 还可以是⼀些其他的资源, ⽐如图⽚, 视频, ⾳频等⼆进制的数据

二. http协议工作过程

当我们在浏览器中输⼊⼀个 “⽹址”, 此时浏览器就会给对应的服务器发送⼀个 HTTP 请求. 对⽅服务器收到这个请求之后, 经过计算处理, 就会返回⼀个 HTTP 响应.
在这里插入图片描述
http应用场景:

  1. 网页 -> 服务器 之间的交互
  2. 手机app -> 服务器 之间的交互
    但是在实际开发中, 不一定是真正直接使用http, 而是使用https, 本质上还是http, 但是引入了额外的加密层

三. http协议格式

1. 抓包工具fiddler

想要看到http请求或响应的, 可以通过’‘抓包工具’', 我们使用Fiddler来抓包
原理:
在这里插入图片描述

找到Fiddler的官网:
在这里插入图片描述
安装好后, 需要手动开启抓取https的功能

在这里插入图片描述
在这里插入图片描述
全部勾选上
打开就是这样的效果:
在这里插入图片描述

将左侧全选delete, 打开一个bing, 就可以看到左边:
在这里插入图片描述

这些结果都是浏览器打开bing网页的时候, 给bing发送的http/https的请求数据
浏览器http访问服务器, 往往不只发送一个请求, 很可能是发送了多个请求
我们需要关注的是蓝色的, 并且body这一列数据比较大的
蓝色的, 服务器返回的是html数据
黑色的, 返回的是普通的数据
还会有其他不同的颜色, 区分css, js, 图片
右上方, 是请求的详情, 选择Raw, 是http请求的原始数据
在这里插入图片描述
右下方, 是响应的详情, 选择Raw, 是http响应的原始数据
在这里插入图片描述
http是个文本协议, 但是如果需要返回的响应比较大, 就可能会需要把响应的数据压缩再返回
经过压缩, 相当于是用cpu资源, 置换带宽资源, 压缩以后的数据到达客户端, 再让客户端解压缩, 对于浏览器来说, 解压缩是自动完成的, 但是使用fiddler就需要手动的解压缩
点击在这里插入图片描述即可

2. http请求报文

在这里插入图片描述
点击可用记事本打开请求
在这里插入图片描述

分成4个部分
(下面只是简单熟悉, 下一篇会详细介绍)

  1. 首行
    首行包含三个部分, 用空格来区分
    a) 请求的方法
    在这里插入图片描述
    GET 就是要从服务器中获取某个数据
    b) 请求的URL
    在这里插入图片描述
    c) 版本号
    在这里插入图片描述

  2. 请求头header
    在这里插入图片描述
    header中是"键值对"结构, 每一行是一个键值对, 键和值之间, 使用 : 分割

  3. 空行
    最后一个header后面, 存在一个空行, 类似链表, 使用null作为结尾

  4. 正文body
    正文是可选的, 有些情况下有正文, 有些情况没有正文

3. http响应报文

同样分成4个部分
在这里插入图片描述

  1. 首行
    首行分成3个部分
    a) 版本号
    在这里插入图片描述
    b) 状态码
    在这里插入图片描述
    c) 状态码描述
    在这里插入图片描述
    这是一个成功的响应
  2. 响应的报头header
    在这里插入图片描述
  3. 空行
    最后一个header后面, 存在一个空行, 类似链表, 使用null作为结尾
  4. 正文
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2131659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker 多服务只暴露一个客户端

业务场景 docker部署多个服务时候,当为了安全考虑 部署了多个服务,数据库,缓存库,文件服务器啥的,如果全都暴露的话可能会增加资源侵入的风险,所以只需要挂载一个客户端端口给外部访问即可,其他服务均在内网,保障资源安全 docker 网络 可以把容器们都放在同一网络下,由于docke…

Redis——常用数据类型List

目录 List列表常用命令lpushlpushxrpushrpushlrangelpoprpoplindexlinsertllenlremltrim key start stoplset 阻塞版本命令blpopbrpop list的编码方式list的应用 List列表 Redis中的list相当于数组,或者 顺序表,一些常用的操作可以通过下面这张图来理解…

JAVA中线程池的详解

1.概念 顾名思义,线程池就是管理一系列线程的资源池,其提供了一种限制和管理线程资源的方式。每个线程池还维护一些基本统计信息,例如已完成任务的数量。 这里借用《Java 并发编程的艺术》书中的部分内容来总结一下使用线程池的好处&#x…

windows vscode ssh 连接远程服务器

1.在 PowerShell 中运行以下命令,查看 OpenSSH 客户端是否已安装 Get-WindowsCapability -Online | Where-Object Name -like OpenSSH.Client*如果有安装的话,如下图 2.如果没有安装,那么用下面的命令进行安装 Get-WindowsCapability -On…

MQ基础知识

MQ基础 1.认识MQ 同步调用 我们现在基于OpenFeign的调用都属于是同步调用,那么这种方式存在哪些问题呢? 支付业务执行流程是这样的: 支付服务需要先调用用户服务完成余额扣减然后支付服务自己要更新支付流水单的状态然后支付服务调用交易…

信息安全数学基础(10)素数定理

前言 信息安全数学基础中的素数定理(Prime Number Theorem)是数论中一个非常重要的定理,它给出了小于或等于某个正整数x的素数的近似数量。这个定理在密码学、信息安全等领域有着广泛的应用,尤其是在设计加密算法时,对…

C++ —— 关于string类

目录 1. auto和范围for 1.1 auto关键字 1.2 范围for 2. string的三种遍历方式 3. string类的常用接口说明 3.1 成员函数 3.2 Iterators:(迭代器) 3.2.1正向迭代器和反向迭代器 3.3 Capacity(容量) 3.4 Modifiers&#x…

大模型微调十诫:关于将微调模型部署到生产环境的十条建议

转自;NLP工程化 大模型微调十诫:关于将微调模型部署到生产环境的十条建议: (1)不要盲目微调模型,先尝试使用提示的方式满足需求。只有当提示无法达到质量、性能或成本目标时,才考虑微调。 (2…

ubuntu20.04 GLIBC从2.35降级到2.31

ubuntu20.04默认的GLIBC版本是2.31,因为某些库的依赖问题,脑子一抽把GLIBC升级到2.35,GLIBC升级参考一下另外一位博主的文章Ubuntu20.04更新GLIBC到2.35版本_glibc-2.35-CSDN博客 但当我想把GLIBC回退到2.31版本,参考网上的办法&a…

浅谈基于负荷时空均衡和弹性响应的电动汽车快充电价定价策略

摘要:为了引导电动汽车有序充电,提出了一种考虑负荷时空均衡和弹性响应的电动汽车快充电价定价策略。引入交通流理论描述交通路网,建立电动汽车快充负荷时空分布模型;考虑配电网调度和电动汽车快充负荷的弹性需求,构建…

【Python】从基础到进阶(七):深入理解Python中的异常处理与调试技巧

🔥 个人主页:空白诗 文章目录 一、引言二、异常处理概述1. 什么是异常?2. 异常的捕获与处理 三、常见的异常类型四、自定义异常五、调试与日志记录1. 使用assert进行调试2. 使用日志记录 六、案例:文件操作与异常处理1. 需求分析2…

【经验技巧】瞬态信号仿真中的码型选择问题

工程师在进行通道信号仿真时,经常会遇到信号码型选择的问题,通常的码型选择有两种:连续周期变化、随机变化,那么,不同的码型会对结果产生截然不同的影响,以设计中一路差分通道为例,搭载信号传输…

51.【C语言】字符函数和字符串函数(strcpy函数)

承接50.【C语言】字符函数和字符串函数(上) 点我跳转 5.strcpy函数 *简单使用 cplusplus的介绍 点我跳转 strcpy:string copy 翻译: 复制字符串 复制由source指向的C字符串到由destionation指向的数组中,包括\0(终止0字符)(在\0那里停止复制) 为了防止溢出,由destionation指…

深入内核分析BindException异常原因

一、前言 前段时间公司内的站点发布时经常遇到Tomcat使用的8080端口被占用,导致启动报错BindException的情况。笔者参与了该问题的排查和修复,本文将深入Tomcat、OpenJDK、Linux内核等源码为大家讲解问题的原因以及排查过程。 报错信息 Caused by: java…

收到了大厂中秋礼盒,哪家赢了?

大家好,我是鸭鸭! 中秋节越来越近啦,大家都收到放假通知和中秋月饼了吗? 各大互联网品牌大厂的中秋创意礼盒也来啦! 字节 今年字节的中秋礼盒,除了广州酒家的月饼之外,还发了一床2m*2.3m的四…

INDEMIND:扫地机器人,仍然不够“香”

不仅需要“新花样”,还要搞好“基本功”。 行业祛魅,重啃技术战 正如所有人都知道市场会发生变化,但扫地机器人的陡然降温还是给大多数人上了一课。尽管到了2023年,市场有所复苏,但零售量的增长也仅为4%。一时间&…

医药|基于springboot的医药管理系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书(可指定任意题目) 目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 计算机网络发展到现在已经好几十年了,在理论上面已…

基于vue框架的宠物管理平台的设计与实现f3193(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,医院简介,养宠知识,宠物分类,医生,预约医生,医嘱记录,宠物用品,用品分类,购买记录,供应商,宠物信息 开题报告内容 基于Vue框架的宠物管理平台的设计与实现开题报告 一、引言 随着宠物经济的兴起,宠物管理成为了一个日…

Win11+Ubuntu20.04双系统安装教程(避坑版)

Win11Ubuntu20.04双系统安装教程(避坑版) 前言系统盘制作安装Rufus系统盘制作 Windows磁盘配置移动分区(磁盘分区时出现不连续的未分配空间需要用到,如果是连续的未分配空间即无需操作)安装分区助手移动分区 安装Ubunt…

Redis的IO模型

Redis IO模型 Redis IO模型 使用的是基于 Reactor 模式的 I/O 多路复用模型。这个模型通过单线程事件循环来处理所有的客户端请求和响应。 基本模式 1. Reactor 模式 Reactor 模式是一种用于处理并发 I/O 操作的设计模式。它包含以下几个组件: 多路复用器&…