前后端通信 —— 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

  • 请求消息:起始行包括请求方法、请求URI、HTTP版本;
  • 响应消息:起始行包括HTTP版本、状态码、状态文本信息;

头部字段

Headers

  • 提供了关于消息的元数据,如消息类型、消息大小、消息来源、认证信息等;
  • 头部字段由不区分大小写的【字段名:字段值】;
  • 请求头部字段包括User-Agent(用户代理信息)、Accept(可接受的响应内容类型)、Authorization(认证信息)等;
  • 响应头部字段包括Content-Type(内容类型)、Content-Length(内容长度)、Server(服务器信息)等;

空行

Empty Line

  • 空行是一个单独的换行符,用于分隔头部字段和消息体(消息体可能没有);

消息体

Body

  • 消息体包含了请求或响应的实际数据;
  • 在请求消息中,消息体通常包含要发送给服务器的数据,如表单数据或上传的文件。在响应消息中,消息体通常包含服务器返回的资源内容,如HTML页面、图片、视频等;
  • 不是所有的HTTP消息都包含消息体;例如,GET请求通常不包含消息体;

2、HTTP消息示例

(1)请求消息

(2)响应消息

四、HTTP 方法(常用)

常用的HTTP方法有:GET、POST、PUT、DELETE;

序号方法语义说明
1GET查找从服务器获取资源。
2POST新增向服务器发送数据以创建新资源。
3PUT修改向服务器发送数据以更新现有资源。
4DELETE删除从服务器删除指定的资源。

这些方法虽然有各自的语义,但并不是强制性的;

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

信息,服务器收到请求,需要请求者继续执行操作
100Continue继续。客户端应继续其请求;
101Switching Protocols切换协议。服务器根据客户端的请求切换协议;

2xx

成功,操作被成功接收并处理

200

OK请求成功。请求所希望的响应头或数据体将随此响应返回;
201Created已创建。成功请求并创建了新的资源;
202Accepted已接受。已经接受请求,但未处理完成;
204No Content无内容。服务器成功处理,但未返回内容;
206Partial Content部分内容。服务器成功处理了部分GET请求;

3xx

重定向,需要进一步的操作以完成请求

301

Moved Permanently永久移动。请求的资源已被永久移动到新位置;

302

Found临时移动。与301类似,客户端应继续使用原先的URL请求资源;

304

Not Modified  未修改。自上次请求后,请求的资源未被修改过;
305Use Proxy使用代理。所请求的资源必须通过代理访问;
307Temporary Redirect临时重定向。与302类似。使用GET请求重定向;

4xx

客户端错误,请求包含语法错误或无法完成请求

400

Bad Request客户端请求的语法错误,服务器无法理解;
401Unauthorized请求要求用户的身份认证;
403Forbidden服务器理解请求,但拒绝执行它;

404

Not Found

服务器无法找到请求的资源;

405Method Not Allowed请求方法不被允许用于请求的资源;
409Conflict请求与当前资源的状态冲突;
410Gone服务器无法找到请求的资源,且该资源可能不再可用;

5xx

服务器错误,服务器在处理请求的过程中发生了错误

500

Internal Serve Error服务器内部错误,无法完成请求;
501Not Implemented服务器不支持请求请求的功能;
502Bad Gateway服务器作为网关或代理,从上游服务器收到无效响应;
503Service Unavailable服务器当前无法使用(由于超载或停机维护);
504Gateway Timeout服务器作为网关或代理,但没有及时从上游服务器收到请求;

=========================================================================

每天进步一点点~~!

先记录到这里吧~~!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/799091.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux多线程编程-生产者与消费者模型详解与实现(C语言)

1.什么是生成者与消费者模型 生产者-消费者模型是并发编程中的经典问题,描述了多个线程(或进程)如何安全、有效地共享有限的缓冲区资源。在这个模型中,有两种角色: 生产者(Producer)&#xff1…

牛客周赛 Round 51 解题报告 | 珂学家

前言 题解 典题场, EF都有很多种解法 A. 小红的同余 性质: 相邻两数互质 x ( m 1 ) / 2 x (m1)/2 x(m1)/2 m int(input())print ((m 1) // 2)B. 小红的三倍数 性质: 各个位数之和是3的倍数,可被3整除 和数的组合顺序无关 n int(input()) arr…

Mysql数据表的约束(下)

3.默认值约束(default) 与非空约束的命令一致,因为都属于列级约束,因此只需将not null改为default 默认值即可 删除默认值约束: 4.主键约束(primary key) 表示给一张表格设置了一个唯一标识,为了更快的去通过唯一的数据去准确的查找到每一条记录,一半咱们在创建表…

Netgear WN604 downloadFile.php 信息泄露漏洞复现(CVE-2024-6646)

0x01 产品简介 NETGEAR WN604是一款由NETGEAR(网件)公司生产的无线接入器(或无线路由器)提供Wi-Fi保护协议(WPA2-PSK, WPA-PSK),以及有线等效加密(WEP)64位、128位和152位支持,保障网络安全。同时支持MAC地址认证、802.1x RADIUS以及EAP TLS、TTLS、PEAP等安全机制,…

昇思25天学习打卡营第15天|基于MobileNetv2的垃圾分类

一、关于MobileNetv2 MobileNet网络专注于移动端、嵌入式或IoT设备的轻量级CNN网络。MobileNet网络使用深度可分离卷积(Depthwise Separable Convolution)的思想在准确率小幅度降低的前提下,大大减小了模型参数与运算量。并引入宽度系数 α和…

Paddle 打包部署

PaddleOCR 打包部署exe 心酸历程 PaddleOCR部署exe模式PaddleOCR安装到本地(稍后有时间再写)PaddleOCR打包过程异常问题记录!!!!No such file or directory: D:\\py_project\\paddleOCR\\dist\\paddleOCR\\_internal\\paddleocr\\…

如何指定多块GPU卡进行训练-数据并行

训练代码: train.py import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader, Dataset import torch.nn.functional as F# 假设我们有一个简单的文本数据集 class TextDataset(Dataset):def __init__(self, te…

Linux系统密码重置

实验环境: Centos 7.9 背景: 找回root用户密码 1、首先,启动Linux系统进入开机界面,在界面中快速点击‘e’进入编辑界面,如图: 2、进入编辑界面会后往下翻找到“Linux16”内容所在的行数,在&q…

景联文科技打造千万级高质量中文数字专利数据库,赋能知识产权领域AI创新

专利大模型是在专利数据分析、检索、理解和生成等领域运用的大规模机器学习模型。 已被应用在多个场景中,包括但不限于专利检索优化、专利文本的自动化撰写、专利价值评估、技术趋势预测、专利侵权检测、以及专利组合管理和战略规划等。 专利大模型依赖于海量的数字…

python--实验 11 模块

目录 知识点 模块基础 模块使用方式 自定义模块示例 模块的有条件执行 Python包结构 定义和导入包 常用第三方库及安装 实例代码 第三方库自动安装脚本 Python标准库介绍 PyInstaller 小结 实验 1.(基础题)制作文本进度条。 2.(基础题) 蒙特卡罗方法计算圆周率…

数据结构(单链表(1))

前言 线性表中有着许多的结构,如顺序表和链表。而单链表则是链表的最基础的一种形式,下面就让我们对其做一个了解。 概念 概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次…

【python】OpenCV—European Article Number

参考学习来自:OpenCV基础(25)条码和二维码扫的生成与识别 1 条形码介绍 EAN-13是欧洲物品编码(European Article Number)的缩写,是一种广泛使用的条形码标准,特别是在超级市场和其它零售业中。…

1.33、激活可视化卷积神经网络(matalb)

1、激活可视化卷积神经网络原理及流程 激活可视化(Activation Visualization)指的是通过可视化神经网络中激活函数的输出,来理解神经网络是如何学习并提取特征的过程。在卷积神经网络(CNN)中,我们可以通过…

独立开发者系列(25)——大白话进程

很多小型的规模场景限制下,复杂概念弊端大于利端。不同模式的实现,是根据具体需求来判定,但是理解底层最基础的原理有助于理解很多工具背后的诞生。比如php的swoole workerman 要解决的问题。 首先理解,进程概念,进程…

【竞技宝】欧洲杯:南门的保守害了英格兰

2024欧洲杯已经结束,决赛中西班牙2比1击败英格兰,队史第四次拿到欧洲杯冠军,而英格兰连续两届比赛进入决赛却功亏一篑让人唏嘘不已。赛后关于英格兰主帅索斯盖特是否留任的问题再次被炒上热搜,不少球迷和媒体认为索帅拥有豪华阵容…

华为大咖说 | 企业应用AI大模型的“道、法、术” —— 法:落地篇 (下)

本文作者:郑岩(华为云AI变革首席专家)全文约3554字,阅读约需9分钟 上周,我们探讨了企业应用AI大模型的“道、法、术”——法:落地篇“AI变革五阶八步法”的前四步内容(华为大咖说 | 企业应用AI大…

使用 HttpServlet 接收网页的 post/get 请求

前期工作:部署好 idea 和 一个 web 项目 idea(2021),tomcat(9) ->创建一个空的项目 -> 新建一个空的模块 -> 右键单击模块 选择 Add..Fra.. Sup.. -> 勾选Web App...后点击OK -> 点击 file - Project Struc... -> 选择刚刚的模块 -> 点…

C++初阶:类和对象(中)

一.类的默认成员函数 默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。⼀个类,我们不写的情况下编译器会默认生成以下6个默认成员函数。默认成员函数很重要,也比较复杂: 二.构造函数 (…

GPT-4从0到1搭建一个Agent简介

GPT-4从0到1搭建一个Agent简介 1. 引言 在人工智能领域,Agent是一种能够感知环境并采取行动以实现特定目标的系统。本文将简单介绍如何基于GPT-4搭建一个Agent。 2. Agent的基本原理 Agent的核心是感知-行动循环(Perception-Action Loop)…

电脑文件误删除如何恢复?Top12电脑数据恢复软件汇总合集!(图文详解)

电脑文件误删除如何恢复?在日常使用电脑过程中,我们经常会遇到意外删除文件的情况。可能是因为按错了按键、误操作了鼠标,或者意外格式化了存储设备。这些情况都可能导致重要的文件不小心被删除。但是不用担心,有许多专业的数据恢…