前后端通信 —— 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…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
