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

ES6从入门到精通:前言

ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

【Oracle】分区表

个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...