当前位置: 首页 > 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可以实现顺序链、嵌套链、并行链、路由以及动态构建等高级功能…...

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. 答案 先说答案&#xff0c;可以。 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 中最常用的权限模型&#xff0c;它将权限分配给角色&#xff0c;再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...

【WebSocket】SpringBoot项目中使用WebSocket

1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖&#xff0c;添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...