网络基础入门到深入(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可以实现顺序链、嵌套链、并行链、路由以及动态构建等高级功能…...
PPT转视频工具,就得保留全部动画效果 —— 使用YOCO有感
在做课件视频这件事上,我踩过不少坑。一开始我以为,PPT转视频无非就是“把页面录下来”,后来才发现,真正决定视频质量的,不是画面清不清,而是PPT里的“动画逻辑”有没有被完整保留。而这一点,恰…...
JavaScript typeof 操作符详解
JavaScript typeof 操作符详解 引言 在JavaScript中,typeof 是一个一元运算符,用于检测给定变量的数据类型。它是JavaScript中最常用的类型检测方法之一。本文将详细介绍 typeof 操作符的用法、返回值以及注意事项。 typeof 运算符概述 typeof 运算符可以用于检测任何Jav…...
高并发内容社区实战面试:从 Java 基础到 Spring Cloud、Kafka、Redis、RAG 搜索全解析
高并发内容社区实战:从 Java 基础到 Spring Cloud、Kafka、Redis、RAG 搜索的面试故事场景:互联网大厂 Java 岗现场面试,业务是“高并发内容社区 AI 搜索推荐”。 角色: 面试官(I):严肃、专业、…...
OpenClaw节能模式:让SecGPT-14B在笔记本上流畅运行的配置
OpenClaw节能模式:让SecGPT-14B在笔记本上流畅运行的配置 1. 为什么需要节能模式? 去年冬天,我的MacBook Pro在运行SecGPT-14B时发烫到可以当暖手宝的程度,续航时间从8小时骤降到不足90分钟。这促使我开始研究OpenClaw的节能配置…...
微元理论的数学化演算
一、理论思想总结(一段式,完全还原你最新表述)本理论借用希格斯标量场解释统标量场为宇宙唯一本源,在微观尺度下,标量场中两个无质量特性的标量子,当其间距大于普朗克作用量 h 所界定的临界尺度时ÿ…...
视觉障碍辅助:OpenClaw+Phi-3-vision-128k-instruct实时描述周围环境
视觉障碍辅助:OpenClawPhi-3-vision-128k-instruct实时描述周围环境 1. 项目背景与核心需求 去年在帮助一位视障朋友调试智能家居时,我意识到现有环境感知工具存在明显断层——要么是功能单一的"拍照识物"APP,要么是昂贵的企业级…...
别再死记硬背了!用这5个n8n核心节点,搞定你80%的自动化需求
别再死记硬背了!用这5个n8n核心节点,搞定你80%的自动化需求 每次打开n8n的节点库,就像走进一家琳琅满目的工具超市——HTTP、数据库、AI、邮件、表单...上百种节点让人既兴奋又迷茫。作为过来人,我完全理解那种"每个节点看起…...
Ubuntu 20.04 手动升级 OpenSSL 3.x 的完整指南
1. 为什么需要手动升级OpenSSL? Ubuntu 20.04默认安装的是OpenSSL 1.1.1版本,虽然这个版本仍然在维护周期内,但新发布的OpenSSL 3.x系列带来了许多重要改进。我在实际项目中遇到过这样的情况:某个新开发的加密功能必须依赖OpenSSL…...
不止于时钟:用QtE 4.4.0为UP-CUP4412开发板打造个性化嵌入式GUI界面的思路与扩展
从时钟到智能终端:基于QtE 4.4.0的UP-CUP4412嵌入式GUI开发实战 在嵌入式系统开发领域,图形用户界面(GUI)的设计与实现一直是连接硬件与用户的关键桥梁。UP-CUP4412开发板作为一款功能强大的ARM平台,配合Qt/Embedded(QtE)这一轻量级GUI框架&a…...
5个超能力解决10大资源下载难题:自媒体人必备的跨平台资源捕获工具
5个超能力解决10大资源下载难题:自媒体人必备的跨平台资源捕获工具 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader …...
