网络基础入门到深入(3):网络协议-HTTP/S
目录
一、HTTP和HTTPS协议简介
1.HTTP协议
.HTTP 协议
作用:
特点:
2.HTTPS协议
作用:
实现方式:
特点:
二.HTTP的请求与响应结构
1.HTTP请求结构
1.请求行:描述操作和资源
2.请求头:
3.请求体 :
2.HTTP响应结构
1.状态行:
2.响应头:
3.响应体:
HTTPS的工作原理(SSL/TLS)
1. SSL/TLS 的核心功能
2. HTTPS 的握手过程
3. 核心概念
本篇内容将开始讲解HTTP和HTTPS,这部分内容会涉及HTTP 的请求与响应结构、HTTPS 的安全性原理
一、HTTP和HTTPS协议简介
1.HTTP协议
.HTTP 协议
- 全称:HyperText Transfer Protocol(超文本传输协议)
-
作用:
在客户端(如浏览器)与服务器之间传输网页数据。
-
特点:
- 无状态:每次请求独立,服务器不会记住之前的请求。
- 明文传输:数据不加密,容易被窃听。
2.HTTPS协议
- 全称:HTTP Secure(安全超文本传输协议)
-
作用:
为 HTTP 添加了加密层,确保通信安全。
-
实现方式:
HTTP + SSL/TLS。
-
特点:
- 数据加密,保护隐私。
- 防止中间人攻击和数据篡改。
- 使用
https://前缀,默认端口是 443。
二.HTTP的请求与响应结构
1.HTTP请求结构
客户端向服务器发送请求,包含以下部分:
1.请求行:描述操作和资源
- 方法(如 Get、POST、PUT、DELETE)
- URL(目标资源路径)
- 协议版本(如HTTP/1.1)
示例:
GET /index.html HTTP/1.1
2.请求头:
包含附加信息(元数据)
- 示例:
Host: www.example.com
User-Agent: Mozilla/5.0
3.请求体 :
携带数据(仅POST登方法有)
示例:
name=Alice&age=25
2.HTTP响应结构
服务器响应客户端的请求,包含以下部分:
1.状态行:
描述响应状态
- 协议版本(如HTTP/1.1)
- 状态码(如200表示成功)
- 状态描述(如OK)
以下是常见的 HTTP 响应结构中的状态码和状态描述 表格,涵盖了不同的类别及常见状态码的解释:
| 类别 | 状态码 | 状态描述 | 含义 |
|---|---|---|---|
| 信息响应 | 100 | Continue | 继续,请求的初始部分已经接收,客户端应继续发送剩余部分。 |
| 101 | Switching Protocols | 切换协议,服务器已根据客户端请求切换到另一协议。 | |
| 102 | Processing | 处理中,服务器已接收请求但尚未完成。 | |
| 成功 | 200 | OK | 请求成功,服务器返回请求的资源。 |
| 201 | Created | 已创建,请求导致新的资源成功创建。 | |
| 202 | Accepted | 已接受,服务器接受了请求但尚未处理完成。 | |
| 204 | No Content | 无内容,服务器成功处理了请求,但没有返回任何内容。 | |
| 重定向 | 301 | Moved Permanently | 永久移动,资源已永久转移到新位置,后续应使用新 URL。 |
| 302 | Found | 临时移动,资源暂时被转移到另一个位置。 | |
| 303 | See Other | 查看其他位置,客户端应使用 GET 请求访问另一个 URI。 | |
| 304 | Not Modified | 未修改,客户端缓存的资源未改变,可以直接使用本地副本。 | |
| 307 | Temporary Redirect | 临时重定向,资源被临时移动,且后续仍应使用原 URL。 | |
| 客户端错误 | 400 | Bad Request | 错误请求,客户端请求有语法错误,服务器无法理解。 |
| 401 | Unauthorized | 未授权,客户端未提供认证凭据或凭据无效。 | |
| 403 | Forbidden | 禁止访问,服务器理解请求但拒绝执行。 | |
| 404 | Not Found | 未找到,服务器无法找到请求的资源。 | |
| 405 | Method Not Allowed | 方法不允许,请求中使用的方法被禁止。 | |
| 408 | Request Timeout | 请求超时,客户端在规定时间内未完成请求。 | |
| 429 | Too Many Requests | 请求过多,客户端发送的请求次数超出限额。 | |
| 服务器错误 | 500 | Internal Server Error | 服务器内部错误,服务器在处理请求时发生错误。 |
| 501 | Not Implemented | 未实现,服务器不支持当前请求的方法。 | |
| 502 | Bad Gateway | 错误网关,服务器作为网关时收到无效响应。 | |
| 503 | Service Unavailable | 服务不可用,服务器暂时过载或维护。 | |
| 504 | Gateway Timeout | 网关超时,服务器作为网关时未及时获得上游服务器响应。 |
2.响应头:
附加信息
示例:
Content-Type: text/html
Content-Length: 1234
3.响应体:
返回的实际内容
HTTPS的工作原理(SSL/TLS)
1. SSL/TLS 的核心功能
- 加密:防止通信内容被窃听。
- 认证:确认服务器身份是否可信。
- 完整性:确保数据未被篡改。
2. HTTPS 的握手过程
HTTPS 的核心是 TLS 握手。以下是简化的流程:
- 客户端发起请求:客户端发送支持的加密算法和协议版本。
- 服务器响应:服务器选择加密算法,并发送公钥和数字证书。
- 密钥协商:客户端验证服务器证书,并生成对称密钥,通过服务器公钥加密发送给服务器。
- 安全通信开始:双方使用对称密钥进行加密通信。
3. 核心概念
- 对称加密:同一密钥用于加密和解密,速度快。
- 非对称加密:公钥加密,私钥解密,安全性高。
- 数字证书:由受信任机构(CA)颁发,用于验证服务器身份。
好了,这就是本篇文章,大概讲解了一下HTTP和HTTPS协议的一些内容,后续将会介绍其他更多的协议内容
相关文章:
网络基础入门到深入(3):网络协议-HTTP/S
目录 一、HTTP和HTTPS协议简介 1.HTTP协议 .HTTP 协议 作用: 特点: 2.HTTPS协议 作用: 实现方式: 特点: 二.HTTP的请求与响应结构 1.HTTP请求结构 1.请求行:描述操作和资源 2.请求头: 3.请求体 : 2.HTTP…...
Git的.gitignore文件详解与常见用法
诸神缄默不语-个人CSDN博文目录 在日常使用 Git 进行版本控制时,我们经常会遇到一些不需要被提交到远程仓库的文件(例如日志文件、临时配置文件、环境变量文件等)。为了忽略这些文件的提交,Git 提供了一个非常有用的功能…...
UniApp 组件的深度运用
一、引言 在当今的移动应用开发领域,跨平台开发已成为主流趋势,而 UniApp 作为其中的佼佼者,备受开发者青睐。UniApp 的强大之处很大程度上源于其丰富且功能多样的组件体系,这些组件宛如精巧的积木,能够帮助开发者快速…...
k8s部署nginx+sshd实现文件上传下载
要通过 nginx 和 sshd 实现文件的上传和下载,通常的做法是结合 SSH 协议和 HTTP 协议,使用 nginx 提供 Web 服务器功能,同时使用 sshd(即 SSH 服务)来处理通过 SSH 协议进行的文件传输。 SSH 实现文件的上传和下载&…...
Spring-Mybatis 2.0
前言: 第一点:过于依赖代码生成器或AI,导致基于mybaits的CRUD通通忘了,所以为了找回遗忘的记忆,有了该系列内容。 第二点:通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能…...
Linux 的历史与发展:从诞生到未来
Linux 的历史与发展:从诞生到未来 1. 起源之前:操作系统的历史背景 在 Linux 问世之前,操作系统的发展经历了多个重要阶段,这些阶段为 Linux 的诞生奠定了基础: 1940-1950 年代:计算机初期 早期计算机如 [[…...
SQL Server实现将分组的其他字段数据拼接成一条数据
在 SQL Server 中,可以使用 STRING_AGG 函数(SQL Server 2017 及更高版本支持)将分组的其他字段数据拼接成一条数据。以下是示例代码: 假设有一个表 Orders,结构如下: OrderIDCustomerIDProduct1C001Appl…...
学习笔记 --C#基础其他知识点(同步和异步)
C#中的同步和异步《一》 以下理解借鉴博客:借鉴博客地址1 异步编程(Asynchronous) 允许任务在后台执行,而不会阻塞调用线程。C#使用async和await关键字 async Task AsynchronousMethod() {// 等待异步操作完成await Task.Dela…...
一维、线性卡尔曼滤波的例程(MATLAB)
这段 MATLAB 代码实现了一维线性卡尔曼滤波器的基本功能,用于估计在存在噪声的情况下目标状态的真实值 文章目录 一维线性卡尔曼滤波代码运行代码介绍1. **初始化部分**2. **数据生成**3. **卡尔曼滤波器实现**4. **结果可视化**5. **统计输出**源代码总结一维线性卡尔曼滤波 …...
极品飞车6的游戏手柄设置
极品飞车,既可以用键盘来控制车辆的前进、后退、左转、右转、加速与减速,也可以使用游戏手柄来操作车辆的运行。需要注意的是,极品飞车虽然支持手柄,但是仅支持常见的北通、罗技还有部分Xbox系列的手柄,至于其他的PS4手…...
FreeRTOS Lwip Socket APi TCP Server 1对多
源文件 /********************************************************************************* file lwip_tcp_driver.cpp* brief TCP Server implementation using LwIP******************************************************************************* at…...
逆袭之路(11)——python网络爬虫:原理、应用、风险与应对策略
困厄铸剑心,逆袭展锋芒。 寒苦凝壮志,腾跃绘华章。 我要逆袭。 目录 一、引言 二、网络爬虫的基本原理 (一)网络请求与响应 (二)网页解析 (三)爬行策略 三、网络爬虫的应用领…...
KOI技术-事件驱动编程(Sping后端)
1 “你日渐平庸,甘于平庸,将继续平庸。”——《以自己喜欢的方式过一生》 2. “总是有人要赢的,那为什么不能是我呢?”——科比布莱恩特 3. “你那么憎恨那些人,和他们斗了那么久,最终却要变得和他们一样,…...
LVS 负载均衡原理 | 配置示例
注:本文为 “ LVS 负载均衡原理 | 配置” 相关文章合辑。 部分内容已过时,可以看看原理实现。 未整理去重。 使用 LVS 实现负载均衡原理及安装配置详解 posted on 2017-02-12 14:35 肖邦 linux 负载均衡集群是 load balance 集群的简写,翻…...
Hive分区再分桶表
在Hive中,数据通常是根据分区(partition)来组织的,但是对于大数据集,单层分区可能不够用,因此可以进一步细分为桶(bucket)。桶可以用于提供额外的并行处理和优化查询性能。在这种情况…...
从 Coding (Jenkinsfile) 到 Docker:全流程自动化部署 Spring Boot 实战指南(简化篇)
前言 本文记录使用 Coding (以 Jenkinsfile 为核心) 和 Docker 部署 Springboot 项目的过程,分享设置细节和一些注意问题。 1. 配置服务器环境 在实施此过程前,确保服务器已配置好 Docker、MySQL 和 Redis,可参考下列链接进行操作࿱…...
Linux官文转载-- Linux 内核代码风格
Warning 此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 这是一个简短的文档,描述了 linux 内核的首选代码风格。代码风格是因人而异的&a…...
Qt监控系统放大招/历经十几年迭代完善/多屏幕辅屏预览/多层级设备树/网络登录和回放
一、前言说明 近期对视频监控系统做了比较大的更新升级,主要就是三点,第一点就是增加了辅屏预览,这个也是好多个客户需要的功能,海康的iVMS-4200客户端就有这个功能,方便在多个屏幕打开不同的视频进行查看,…...
【贪心算法】贪心算法七
贪心算法七 1.整数替换2.俄罗斯套娃信封问题3.可被三整除的最大和4.距离相等的条形码5.重构字符串 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃…...
LangChain教程 - 表达式语言 (LCEL) -构建智能链
系列文章索引 LangChain教程 - 系列文章 LangChain提供了一种灵活且强大的表达式语言 (LangChain Expression Language, LCEL),用于创建复杂的逻辑链。通过将不同的可运行对象组合起来,LCEL可以实现顺序链、嵌套链、并行链、路由以及动态构建等高级功能…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
