网络基础入门到深入(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可以实现顺序链、嵌套链、并行链、路由以及动态构建等高级功能…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
