前后端通信 —— HTTP/HTTPS
目录
一、HTTP/HTTPS 简介
1、HTTP
2、HTTPS
二、HTTP 工作过程
三、HTTP 消息
1、HTTP消息结构
2、HTTP消息示例
四、HTTP 方法(常用)
1、GET
2、POST
3、PUT
4、DELETE
5、GET与POST对比
五、HTTP 状态码(常用)
1、HTTP 状态码是什么
2、常见的HTTP状态码
一、HTTP/HTTPS 简介
1、HTTP
HTTP(Hypertext Transfer Protocol),超文本传输协议;
- 是一种用于在万维网上传输数据的应用层协议;
- 主要用来定义客户端和服务器之间的通信规则,包括请求和响应的格式、方法、状态码等;
- 是一个基于 TCP/IP 通信协议来传递数据(HTML 文件、图片文件、查询结果等);
2、HTTPS
HTTPS(HyperText Transfer Protocol Secure),超文本传输安全协议;
在 HTTP 上加入 SSL/TLS 协议,为数据传输提供了加密和身份验证,是HTTP的安全版本;
二、HTTP 工作过程

1、客户端发起请求
用户通过客户端(如浏览器)输入 URL,客户端向服务器发起一个 HTTP 请求;
2、服务器处理请求
服务器接收到请求后,根据请求的类型(如GET、POST等)和请求的资源,进行相应的处理;
3、服务器返回响应
服务器将处理结果包装成HTTP响应消息,发送回客户端;
4、客户端渲染页面
客户端接收到响应后,根据响应内容(如HTML、图片等)渲染页面,展示给用户;
三、HTTP 消息
HTTP消息是指,在HTTP协议中,客户端与服务端之间进行数据传输的基本单元;
- 是前后端通信的基础,由一系列的文本行组成,有着固定的结构和格式;
- 遵循HTTP协议的规范,确保数据能够在客户端和服务器之间正确、高效地传输;
- 分为两种类型:请求消息和响应消息;
1、HTTP消息结构
(1)请求消息

(2)响应消息

| 组成部分 | 说明 |
|---|---|
| 起始行 Start Line |
|
| 头部字段 Headers |
|
| 空行 Empty Line |
|
| 消息体 Body |
|
2、HTTP消息示例
(1)请求消息

(2)响应消息

四、HTTP 方法(常用)
常用的HTTP方法有:GET、POST、PUT、DELETE;
| 序号 | 方法 | 语义 | 说明 |
|---|---|---|---|
| 1 | GET | 查找 | 从服务器获取资源。 |
| 2 | POST | 新增 | 向服务器发送数据以创建新资源。 |
| 3 | PUT | 修改 | 向服务器发送数据以更新现有资源。 |
| 4 | DELETE | 删除 | 从服务器删除指定的资源。 |
这些方法虽然有各自的语义,但并不是强制性的;
1、GET
GET方法,用于从服务器获取资源;
用于请求数据而不对数据进行更改;
例如,从服务器获取数据、图片、文件等;
2、POST
POST方法,用于向服务器发送数据以创建新资源;
常用于提交表单数据或上传文件,发送的数据包含在请求体中;
例如,新增用户、添加商品等;
3、PUT
PUT方法,向服务器发送数据以更新现有资源;
如果资源不存在,则创建新的资源;
例如,用户修改密码、更新商品库存等;
4、DELETE
DELETE方法,从服务器删除指定的资源;
请求中包含要删除的资源标识符;
例如:注销个人账户、删除某个商品信息;
5、GET与POST对比
| GET 请求 | POST 请求 | |
|---|---|---|
| 用途 | 常用于获取数据,如查询操作; | 常用于创建数据,如表单提交、文件上传等; |
| 数据传递方式 | 将数据作为URL的一部分进行传递,会显示在地址栏中; | 将数据放在请求体中进行传递,不会显示在地址栏中; |
| 数据长度限制 | 对数据的长度有限制,跟地址长度有关系,不同的浏览器有所不同,一般最多几k; | 理论上能携带的数据是无限的,但实际受配置和性能的影响; |
| 缓存 | 可以被缓存; | 一般不会被缓存; |
| 安全性 | 相对不安全,传递的数据在浏览器地址栏直接可见,不适合传递敏感数据; | 相对安全,更适合传递敏感信息; |
| 对服务器的影响 | 通常只是用来获取资源,不会对服务器上的资源产生影响; | 通常是用来创建资源,对服务器上的资源会产生; |
五、HTTP 状态码(常用)
1、HTTP 状态码是什么
HTTP状态码是HTTP协议中,用来描述服务器响应客户端请求结果的一种编码方式;
- 是服务器端返回的,对客户端请求的处理结果;
- 它由三位数字组成,每个数字表示不同的含义;
- 定义服务器对请求的处理结果,是服务器返回的;
2、常见的HTTP状态码
熟悉常用的状态码对前后端开发有很大的帮助;
不仅可以快速识别请求是否成功;
也可以得出在请求过程中出现的错误类型,进而相应的相应的处理;
| HTTP状态码 | 英文名称 | 语义 | ||||
| 1xx | 信息,服务器收到请求,需要请求者继续执行操作 | |||||
| 100 | Continue | 继续。客户端应继续其请求; | ||||
| 101 | Switching Protocols | 切换协议。服务器根据客户端的请求切换协议; | ||||
| 2xx | 成功,操作被成功接收并处理 | |||||
| 200 | OK | 请求成功。请求所希望的响应头或数据体将随此响应返回; | ||||
| 201 | Created | 已创建。成功请求并创建了新的资源; | ||||
| 202 | Accepted | 已接受。已经接受请求,但未处理完成; | ||||
| 204 | No Content | 无内容。服务器成功处理,但未返回内容; | ||||
| 206 | Partial Content | 部分内容。服务器成功处理了部分GET请求; | ||||
| 3xx | 重定向,需要进一步的操作以完成请求 | |||||
| 301 | Moved Permanently | 永久移动。请求的资源已被永久移动到新位置; | ||||
| 302 | Found | 临时移动。与301类似,客户端应继续使用原先的URL请求资源; | ||||
| 304 | Not Modified | 未修改。自上次请求后,请求的资源未被修改过; | ||||
| 305 | Use Proxy | 使用代理。所请求的资源必须通过代理访问; | ||||
| 307 | Temporary Redirect | 临时重定向。与302类似。使用GET请求重定向; | ||||
| 4xx | 客户端错误,请求包含语法错误或无法完成请求 | |||||
| 400 | Bad Request | 客户端请求的语法错误,服务器无法理解; | ||||
| 401 | Unauthorized | 请求要求用户的身份认证; | ||||
| 403 | Forbidden | 服务器理解请求,但拒绝执行它; | ||||
| 404 | Not Found | 服务器无法找到请求的资源; | ||||
| 405 | Method Not Allowed | 请求方法不被允许用于请求的资源; | ||||
| 409 | Conflict | 请求与当前资源的状态冲突; | ||||
| 410 | Gone | 服务器无法找到请求的资源,且该资源可能不再可用; | ||||
| 5xx | 服务器错误,服务器在处理请求的过程中发生了错误 | |||||
| 500 | Internal Serve Error | 服务器内部错误,无法完成请求; | ||||
| 501 | Not Implemented | 服务器不支持请求请求的功能; | ||||
| 502 | Bad Gateway | 服务器作为网关或代理,从上游服务器收到无效响应; | ||||
| 503 | Service Unavailable | 服务器当前无法使用(由于超载或停机维护); | ||||
| 504 | Gateway Timeout | 服务器作为网关或代理,但没有及时从上游服务器收到请求; | ||||
=========================================================================
每天进步一点点~~!
先记录到这里吧~~!
相关文章:
前后端通信 —— HTTP/HTTPS
目录 一、HTTP/HTTPS 简介 1、HTTP 2、HTTPS 二、HTTP 工作过程 三、HTTP 消息 1、HTTP消息结构 2、HTTP消息示例 四、HTTP 方法(常用) 1、GET 2、POST 3、PUT 4、DELETE 5、GET与POST对比 五、HTTP 状态码(常用) …...
人工智能 (AI) 应用:一个高精度ASD 诊断和照护支持系统
自闭症谱系障碍(ASD)是一种多方面的神经发育状况,影响全球大约1/100的儿童,而在中国,这一比例高达1.8%(引用自《中国0~6岁儿童孤独症谱系障碍筛查患病现状》),男童为2.6%…...
C# 1.方法
方法组成: 1.修饰符:public一般定义共有的 2.方法返回值:void 无返回值; 非void,可以写成其他类型例如int,float,string,string[]等 3.方法名:Add 大驼峰命名法,每一个首字符大写。…...
【C++进阶学习】第七弹——AVL树——树形结构存储数据的经典模块
二叉搜索树:【C进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫-CSDN博客 目录 一、AVL树的概念 二、AVL树的原理与实现 AVL树的节点 AVL树的插入 AVL树的旋转 AVL树的打印 AVL树的检查 三、实现AVL树的完整代码 四、总结 前言:…...
px,em,rem之间的关系换算
px,em,rem之间的换算 px:普通大小 em:相对单位,相对于父元素的字体大小 rem:相对单位,相对于根元素(html)的字体大小 <!DOCTYPE html> <html lang"en"> <head>…...
HTTP——POST请求详情
POST请求 【传输实体文本】向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在POST请求体中。POST 请求可能会导致新的资源的建立或已有资源的修改。 场景: 1. 提交用户注册信息。 2. 提交修改的用户信息。 常见的…...
外包干了1个月,技术明显退步。。。
有一种打工人的羡慕,叫做“大厂”。 真是年少不知大厂香,错把青春插稻秧。 但是,在深圳有一群比大厂员工更庞大的群体,他们顶着大厂的“名”,做着大厂的工作,还可以享受大厂的伙食,却没有大厂…...
LeetCode加油站(贪心算法/暴力,分析其时间和空间复杂度)
题目描述 一.原本暴力算法 最初的想法是:先比较gas数组和cost数组的大小,找到可以作为起始点的站点(因为如果你起始点的油还不能到达下一个站点,就不能作为起始点)。当找到过后,再去依次顺序跑一圈,如果剩余的油为负数…...
5.1 软件工程基础知识-软件工程概述
软件工程诞生原因 软件工程基本原理(容易被考到) 软件生存周期 能力成熟度模型 - CMM 能力成熟度模型 - CMMI 真题...
HttpUtil工具
http工具 用到的依赖 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version></dependency><dependency><groupId>org.apache.httpcomponent…...
并发编程-锁的分类
锁的分类 可重入锁&不可重入锁 可重入:当一个线程获取某个锁后,再次获取这个锁的时候是可以直接拿到的。不可重入:当一个线程获取某个锁之后,再次获取这个锁的时候拿不到,必须等自己先释放锁再获取。synchronized…...
K8S系列-Kubernetes基本概念及Pod、Deployment、Service的使用
一、Kubernetes 的基本概念和术语 一、资源对象 Kubernetes 的基本概念和术语大多是围绕资源对象 Resource Object 来说的,而资源对象在总体上可分为以下两类: 1、某种资源的对象 例如节点 Node) Pod 服务 (Service) 、存储卷 (Volume)。 2、…...
在VSCode上创建Vue项目详细教程
1.前期环境准备 搭建Vue项目使用的是Vue-cli 脚手架。前期环境需要准备Node.js环境,就像Java开发要依赖JDK环境一样。 1.1 Node.js环境配置 1)具体安装步骤操作即可: npm 安装教程_如何安装npm-CSDN博客文章浏览阅读836次。本文主要在Win…...
Go语言入门之流程控制简述
Go语言入门之流程控制简述 1.if语句 if语句和其他语言一样,只不过go语言的if不需要用括号包裹 if 语句的分支代码块的左大括号与 if 关键字在同一行上,这是 go 代码风格的统一要求 简单实例: func main() {// 猜数字a : 2if a > 0 {if a…...
接口测试框架基于模板自动生成测试用例!
引言 在接口自动化测试中,生成高质量、易维护的测试用例是一个重要挑战。基于模板自动生成测试用例,可以有效减少手工编写测试用例的工作量,提高测试的效率和准确性。 自动生成测试用例的原理 为了实现测试用例数据和测试用例代码的解耦&a…...
C++ STL stable_sort用法
一:功能 对区间内元素进行排序,保证相等元素的顺序(稳定排序) 二:用法 #include <iostream>struct Record {std::string label;int rank; };int main() {std::vector<Record> data {{"q", 1},…...
YOLO v8进行目标检测的遇到的bug小结
OSError: [WinError 1455] 页面文件太小,无法完成操作。 我的python环境是放在C盘的: 在“我的电脑”点击鼠标右键,打开“属性”点击高级系统设置点击“设置”找到“高级”点击“更改”分配“虚拟内存”(这里需要重启电脑才能生…...
FastAPI -- 第二弹(响应模型、状态码、路由APIRouter、后台任务BackgroundTasks)
响应模型 添加响应模型 from typing import Anyfrom fastapi import FastAPI from pydantic import BaseModel, EmailStrapp FastAPI()class UserIn(BaseModel):username: strpassword: stremail: EmailStrfull_name: str | None Noneclass UserOut(BaseModel):username: s…...
案例 | 人大金仓助力山西政务服务核心业务系统实现全栈国产化升级改造
近日,人大金仓支撑山西涉企政策服务平台、政务服务热线联动平台、政务网、办件中心等近30个政务核心系统完成全栈国产化升级改造,推进全省通办、跨省通办、综合业务受理、智能审批、一件事一次办等业务的数字化办结进程,为我国数字政务服务提…...
如何用python写接口
如何用python写接口?具体步骤如下: 1、实例化server 2、装饰器下面的函数变为一个接口 3、启动服务 开发工具和流程: python库:flask 》实例化server:server flask.Flask(__name__) 》server.route(/index,met…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
