当前位置: 首页 > news >正文

网络基础入门到深入(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 响应结构中的状态码和状态描述 表格,涵盖了不同的类别及常见状态码的解释:

类别状态码状态描述含义
信息响应100Continue继续,请求的初始部分已经接收,客户端应继续发送剩余部分。
101Switching Protocols切换协议,服务器已根据客户端请求切换到另一协议。
102Processing处理中,服务器已接收请求但尚未完成。
成功200OK请求成功,服务器返回请求的资源。
201Created已创建,请求导致新的资源成功创建。
202Accepted已接受,服务器接受了请求但尚未处理完成。
204No Content无内容,服务器成功处理了请求,但没有返回任何内容。
重定向301Moved Permanently永久移动,资源已永久转移到新位置,后续应使用新 URL。
302Found临时移动,资源暂时被转移到另一个位置。
303See Other查看其他位置,客户端应使用 GET 请求访问另一个 URI。
304Not Modified未修改,客户端缓存的资源未改变,可以直接使用本地副本。
307Temporary Redirect临时重定向,资源被临时移动,且后续仍应使用原 URL。
客户端错误400Bad Request错误请求,客户端请求有语法错误,服务器无法理解。
401Unauthorized未授权,客户端未提供认证凭据或凭据无效。
403Forbidden禁止访问,服务器理解请求但拒绝执行。
404Not Found未找到,服务器无法找到请求的资源。
405Method Not Allowed方法不允许,请求中使用的方法被禁止。
408Request Timeout请求超时,客户端在规定时间内未完成请求。
429Too Many Requests请求过多,客户端发送的请求次数超出限额。
服务器错误500Internal Server Error服务器内部错误,服务器在处理请求时发生错误。
501Not Implemented未实现,服务器不支持当前请求的方法。
502Bad Gateway错误网关,服务器作为网关时收到无效响应。
503Service Unavailable服务不可用,服务器暂时过载或维护。
504Gateway Timeout网关超时,服务器作为网关时未及时获得上游服务器响应。

2.响应头:

附加信息

示例:

Content-Type: text/html
Content-Length: 1234 

 3.响应体:

返回的实际内容


HTTPS的工作原理(SSL/TLS)

1. SSL/TLS 的核心功能
  • 加密:防止通信内容被窃听。
  • 认证:确认服务器身份是否可信。
  • 完整性:确保数据未被篡改。
2. HTTPS 的握手过程

HTTPS 的核心是 TLS 握手。以下是简化的流程:

  1. 客户端发起请求:客户端发送支持的加密算法和协议版本。
  2. 服务器响应:服务器选择加密算法,并发送公钥和数字证书。
  3. 密钥协商:客户端验证服务器证书,并生成对称密钥,通过服务器公钥加密发送给服务器。
  4. 安全通信开始:双方使用对称密钥进行加密通信。
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 提供了一个非常有用的功能&#xf…...

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,可参考下列链接进行操作&#xff1…...

Linux官文转载-- Linux 内核代码风格

Warning 此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 这是一个简短的文档,描述了 linux 内核的首选代码风格。代码风格是因人而异的&a…...

Qt监控系统放大招/历经十几年迭代完善/多屏幕辅屏预览/多层级设备树/网络登录和回放

一、前言说明 近期对视频监控系统做了比较大的更新升级,主要就是三点,第一点就是增加了辅屏预览,这个也是好多个客户需要的功能,海康的iVMS-4200客户端就有这个功能,方便在多个屏幕打开不同的视频进行查看&#xff0c…...

【贪心算法】贪心算法七

贪心算法七 1.整数替换2.俄罗斯套娃信封问题3.可被三整除的最大和4.距离相等的条形码5.重构字符串 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃&#x1f…...

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 选举机制 半数机制(过半机制&#xff0…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

Robots.txt 文件

什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...