前后端通信 —— 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…...
自适应交易利器:KAMA指标在Python中的高效实现与实战解析
1. 认识KAMA指标:让移动平均线"活"起来 第一次接触KAMA指标是在2018年的一个量化交易项目中。当时我们团队正在寻找能够适应不同市场环境的趋势指标,传统的均线系统在震荡市中频繁发出假信号,而在趋势行情中又显得过于滞后。直到一…...
C++笔记 Lambda表达式
Lambda表达式是C11引入的核心特性之一,本质是一种匿名函数,可以捕获作用域内的变量,无需单独定义函数名,就能实现简洁、灵活的代码编写,尤其适合作为回调函数、算法参数(如STL算法)等场景&#…...
开源抽卡模拟器:浏览器中的原神资源策略实验室
开源抽卡模拟器:浏览器中的原神资源策略实验室 【免费下载链接】Genshin-Impact-Wish-Simulator Best Genshin Impact Wish Simulator Website, no need to download, 100% running on browser! 项目地址: https://gitcode.com/gh_mirrors/gen/Genshin-Impact-Wis…...
uniapp实战:uview Collapse组件动态数据加载后高度异常的3种解决方案
Uniapp实战:uView Collapse组件动态数据加载后高度异常的深度解决方案 在Uniapp开发中,uView UI库的Collapse折叠面板组件因其简洁易用而广受欢迎。但当我们需要动态加载数据并展开面板时,经常会遇到一个棘手的问题:面板高度计算不…...
opencv透视变换实战:从算法原理到图像矫正的完整实现
1. 透视变换的数学原理与生活场景 第一次接触透视变换时,我盯着那些数学公式看了整整一个下午。直到有天在咖啡厅看到服务员端盘子,突然就明白了——这就像把倾斜的餐盘拍平的过程。想象你从侧面45度角拍了一张餐盘照片,透视变换就是把这个斜…...
QuaggaJS摄像头安全最佳实践:保护用户隐私的完整指南
QuaggaJS摄像头安全最佳实践:保护用户隐私的完整指南 【免费下载链接】quaggaJS An advanced barcode-scanner written in JavaScript 项目地址: https://gitcode.com/gh_mirrors/qu/quaggaJS QuaggaJS作为一款基于JavaScript的高级条形码扫描库,…...
告别虚拟机!在Windows 11的WSL2里搞定RK3588交叉编译环境(基于gcc-linaro-7.5.0)
在Windows 11的WSL2中高效搭建RK3588交叉编译环境 对于嵌入式开发者来说,为RK3588这样的ARM架构处理器搭建交叉编译环境是日常工作的重要一环。传统方式往往需要在物理机安装Linux系统或使用虚拟机,但这两种方案都存在明显的效率瓶颈。本文将介绍如何利用…...
Hikyuu性能优化技巧:从AMD 7950x实测看量化平台的极致速度
Hikyuu性能优化技巧:从AMD 7950x实测看量化平台的极致速度 【免费下载链接】hikyuu Hikyuu Quant Framework 基于C/Python的极速开源量化交易研究框架,同时可基于策略部件进行资产重用,快速累积策略资产。 项目地址: https://gitcode.com/g…...
STM32标准库开发入门与GPIO控制实战
1. 从点灯开始:STM32标准库开发入门指南 作为一名嵌入式开发者,我始终记得第一次点亮LED时的兴奋感。那闪烁的小灯不仅标志着程序的成功运行,更代表着嵌入式世界的入门仪式。本文将带你从最基础的STM32标准库开发入手,逐步深入理解…...
广州seo公司如何选择
广州seo公司如何选择 在当今数字化时代,选择一家合适的广州seo公司成为企业在竞争激烈的市场中脱颖而出的关键。SEO(搜索引擎优化)不仅仅是提升网站排名,更是提高品牌知名度和销售转化的有效手段。如何选择一家优秀的广州seo公司…...
