网络基础入门到深入(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可以实现顺序链、嵌套链、并行链、路由以及动态构建等高级功能…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
【WebSocket】SpringBoot项目中使用WebSocket
1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖,添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...