前后端、网关、协议方面补充

这里写目录标题

  • 前后端
    • 接口文档
      • 简介
      • 前后端视角
        • 对于前端
        • 对于后端
          • 代码
          • 注册路由
          • 路由处理函数
      • 关于http
        • GET/POST
        • 底层网络
        • 关于前端的获取
  • 路由器网关
    • 路由器的IP
      • 简介
      • 公网IP(WAN IP)
      • 私网IP(LAN IP)
      • 无线网络IP(WIFI IP)
      • 查询
        • 路由器私网IP
        • 路由器公网IP
    • LAN口与WIFI
      • 简介
      • 基本原理
    • 手动配置电脑IP时,默认网关
      • 由上述已经可知,默认网关即路由器的私网IP
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

前后端

接口文档

简介

接口文档,是对一个接口的功能、参数、返回值、调用凡是等进行详细描述的文档

例如:
在这里插入图片描述

前后端视角

对于前端

在这里插入图片描述
在这里插入图片描述
前端相当于接口的调用者
后端相应的接口会被开放在文档中规定的URL地址,该接口服务就监听在这里。
前端会去向接口文档中提供的URL发送请求,向指定的后端服务发送数据,拿到返回值(通常是JOSN类型的数据)

发送的数据包括:
GET:完整的URL(含请求方法、参数)
POST:大部分数据在请求体,同时也会讲URL发送到后端
发送URL一方面可以携带数据,一方面可以检查确认没有发错人

fetch(‘https://example.com/api/getUserInfo?userId=1’) 这部分向指定的接口 URL 发送了一个 GET 请求,并传递了参数 userId=1 。
然后通过 .then(response => response.json()) ,将服务器返回的响应转换为 JSON 格式的数据。如果转换成功,就会进入下一个 .then 回调,通过 data => console.log(data) 将数据打印到控制台。
如果在这个过程中任何一个环节出现错误,比如网络问题或者服务器返回了错误状态码,就会被 .catch 捕获,然后通过 console.error 打印出错误信息。

对于后端
代码

在这里插入图片描述
在上述代码中,handleGetRequest 函数用于处理 GET 请求,分析请求中的参数,并根据参数情况返回相应的响应。main 函数中创建 http_listener 对象来监听指定端口和路径的请求,并关联处理函数。

步骤解释:
1、使用http_listener对象,来进行一些操作,包括:
指定监听URL、注册路由(注册当URL收到请求,且请求为GET/POST时,进入到某个“路由处理函数”进行业务处理)

在路由处理函数中:
2、参数在URL中,所以要对URL进行分割,拿到参数

3、拼接好JOSN数据对象之后,直接使用relay方法发送给前端

4、这个是后端在监听对应的URL路径上收到的前端请求

注册路由

上述的listener.support()就是注册路由
注册路由主要有以下几个重要作用:
组织和管理请求:通过注册路由,可以将不同的请求 URL 和对应的处理逻辑清晰地关联起来,使后端服务能够有条不紊地处理各种类型的请求。
提高代码可读性和可维护性:将请求与处理函数明确对应,使得其他开发者在阅读和理解代码时更容易知道每个请求的处理流程。
分离关注点:让开发者能够专注于每个路由对应的具体业务逻辑,而不必担心请求的分发和匹配。
方便扩展和修改:当需要添加新的功能或修改现有功能时,只需在注册路由的部分进行相应的调整,而不会影响到其他不相关的部分。
增强安全性:可以对不同的路由进行访问权限的控制和设置,保障系统的安全性。

其他例子:
在这里插入图片描述
1、在上述代码中,通过 listener.support 方法注册了两个路由 /home 和 /about ,并分别关联了 handleHomeRequest 和 handleAboutRequest 两个处理函数。

2、在上述代码中,注册的路由及其对应的 URL 分别是:
handleHomeRequest 对应的 URL 是 http://localhost:3000/home
handleAboutRequest 对应的 URL 是 http://localhost:3000/about

3、在实际开发中,只要前后端对 URL 的理解和使用保持一致即可,不一定要求资源实际存在于 URL 所指示的物理路径下。
URL 更多的是一种逻辑上的标识符和约定,前后端通过遵循相同的规则来进行通信和交互。
然而,从良好的架构和设计角度来说,将相关的处理逻辑和资源按照有意义的方式组织在与 URL 结构相对应的代码结构中,有助于提高代码的可维护性和可读性。
但关键还是前后端的一致性,只要双方都明确并遵循相同的 URL 规则,系统就能正常运行。

路由处理函数

上述的handleGetRequest 就是路由处理函数
路由处理函数呢,简单来说就是当特定的路由(也就是 URL 路径)被访问,并且使用了特定的 HTTP 方法(比如 GET、POST 等)时,会被调用执行的函数。
之所以叫 “路由”,是因为它就像网络中的路由器一样。路由器根据数据包的目标地址来决定数据包的流向,而在 Web 开发中,路由根据客户端请求的 URL 和方法,决定将请求引导到对应的处理函数去进行处理,从而实现不同的功能。
打个比方,您可以把整个 Web 应用想象成一个大的办公楼,每个房间就是一个功能模块。而路由就像是办公楼里的指示牌,告诉来访者(客户端的请求)根据不同的目的地(URL 路径)找到对应的房间(处理函数)去处理相关事务。

关于http

GET/POST

在这里插入图片描述
GET是查询
POST是提交,用于实质作用于后端或者数据库

底层网络

1、http的传输层是TCP:
在这里插入图片描述
浏览器会首先向后端建立TCP连接,之后再访问后续的URL请求

2、前后端使用http的话,主要是使用URL进行网络数据交互:
在这里插入图片描述
URL负责通信方的指定(IP+port),同时还指定请求的方法(GET/POST),同时还携带GET方法的参数
(POST的数据在请求体里面)
不需要实现创建socket进行连接

关于前端的获取

当我们输入一个网址后,浏览器会使用DNS解析域名获取后端IP

之后建立TCP连接

之后,向后端发送URL,后端收到后,向前端发挥实质的html等页面文件

浏览器解析这些html css等,渲染页面

路由器网关

路由器的IP

简介

路由器可以有多个IP地址,这取决于其配置和网络结构。

公网IP(WAN IP)

WAN(广域网)IP地址:这是路由器连接到互联网时使用的公共IP地址。这个地址是由你的互联网服务提供商(ISP)分配的,可以是动态的(每次连接时可能会变化)或静态的(固定不变)。

私网IP(LAN IP)

LAN(局域网)IP地址:这是路由器在其内部网络中使用的私有IP地址。它用于与连接到路由器的设备(如电脑、手机等)进行通信。常见的LAN IP地址范围包括192.168.x.x、172.16.x.x和10.x.x.x。
路由器的LAN IP地址通常也是这些设备的默认网关地址。

无线网络IP(WIFI IP)

无线网络(Wi-Fi)IP地址:如果路由器支持Wi-Fi,它还会有一个或多个用于无线网络的IP地址。

这些地址通常与LAN IP地址相同,因为它们都在同一个内部网络中。

总的来说,路由器的主要IP地址是WAN IP地址和LAN IP地址。如果你需要配置网络设备,通常只需要关注LAN IP地址(即默认网关)。

查询

路由器私网IP

在这里插入图片描述
在这里插入图片描述
电脑上的config,中“无线局域网支配器 WLAN”,指的是无线局域网(WIFI)的一些网络信息
WIFI型局域网
可以看到电脑的内网IP、默认网关就是路由器的“私网IP”

补充:“以太网适配器”:
以太网指的是LAN口的有线连接,而WLAN是无线连接(WIFI)

路由器公网IP

在这里插入图片描述
使用以上命令(注意是if 不是 ip)

这个会显示电脑的公网IP,同时,也是路由器的公网IP,因为内网的任何设备都是使用的路由器的公网IP

LAN口与WIFI

简介

WIFI与LAN口是平级的,他们都是在局域网子网中的连接方式,只不过一个是无线,一个是有线

基本原理

将路由器的WAN口插上网线后,路由器确实会连接到互联网

1 连接WAN口
将从互联网服务提供商(ISP)提供的调制解调器或光猫出来的网线插入路由器的WAN口。

2 配置路由器:按照互联网服务提供商的手册配置路由器

3 连接LAN口:
使用网线连接LAN口
或者
使用WIFI连接LAN口

手动配置电脑IP时,默认网关

由上述已经可知,默认网关即路由器的私网IP

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat与Nginx之全面比较

概况 Apache Tomcat Apache Tomcat,通常简称为Tomcat,是一个开源的Web应用服务器,它主要用于运行Java Web应用程序。Tomcat实现了Java Servlet和JavaServer Pages(JSP)技术,这些是Java EE规范的一部分。To…

网络基础协议理论(TCP协议)

TCP协议(传输控制协议)是网络中一种面向连接的、可靠的、基于字节流的传输层通信协议。以下是对TCP协议的详细简述: 1、TCP协议的基本概念 TCP协议在通信双方建立连接后才能进行数据传输,确保数据的可靠性和顺序性。它广泛应用于…

C语言学习笔记----基础篇

1.数据类型-变量-常量 数据类型 数据类型 │ ├── 基本数据类型 │ ├── 整数类型 │ │ ├── int │ │ ├── unsigned int │ │ ├── short │ │ ├── unsigned short │ │ ├── long │ │ ├── unsigned long │ │ ├…

YOLOv9改进 ,YOLOv9改进损失函数采用SlideLoss来处理样本不平衡问题

摘要 作者提出了一种基于 YOLOv5 改进的实时人脸检测模型,称为YOLO-FaceV2。设计了一个感受野增强模块(RFE)来提升小尺度人脸的感受野,并引入了 NWD 损失,以弥补 IoU 在小目标位置偏差上的敏感性。针对人脸遮挡问题&a…

设计模式——策略模式(c++)

策略模式(Strategy Pattern)在 C 中的实现 1. 策略模式定义 策略模式定义了一系列算法(策略类),将每个算法封装起来,使它们可以相互替换,达到灵活使用不同策略的目的。在策略模式中&#xff0…

strcpy放字符串,strcat接着放字符串

#include <stdio.h> #include <stdlib.h> #include <string.h>#define MAX_ARGS 10 #define USAGE_LEN 256int main(int argc, char *argv[]) {char usage[USAGE_LEN];char *args[MAX_ARGS];int i, arg_count 0;// 构建使用说明字符串strcpy(usage, "U…

uni-app中使用 unicloud 云开发平台③

文章目录 六、hbuilderX 中使用 unicloud 云开发平台文档传统业务开发流程什么是 unicloudunicloud 优点开发流程uncloud 构成云数据库云存储及 CDN创建云函数工程七、unicloud api 操作云函数调用云函数实现云数据库基本增删改查1. 获取数据库引用云存储操作六、hbuilderX 中使…

用 Python 从零开始创建神经网络(五):损失函数(Loss Functions)计算网络误差

用损失函数&#xff08;Loss Functions&#xff09;计算网络误差 引言1. 分类交叉熵损失&#xff08;Categorical Cross-Entropy Loss&#xff09;2. 分类交叉熵损失类&#xff08;The Categorical Cross-Entropy Loss Class&#xff09;展示到目前为止的所有代码3. 准确率计算…

rust并发

文章目录 Rust对多线程的支持std::thread::spawn创建线程线程与 move 闭包 使用消息传递在线程间传送数据std::sync::mpsc::channel()for received in rx接收两个producer 共享状态并发std::sync::Mutex在多个线程间共享Mutex&#xff0c;使用std::sync::Arc 参考 Rust对多线程…

PDF24:多功能 PDF 工具使用指南

PDF24&#xff1a;多功能 PDF 工具使用指南 在日常工作和学习中&#xff0c;PDF 是一种常见且重要的文档格式。无论是查看、编辑、合并&#xff0c;还是转换 PDF 文件&#xff0c;能够快速高效地处理 PDF 文档对于提高工作效率至关重要。PDF24 是一款免费、功能全面的 PDF 工具…

CentOS 安装 Python 3.11.9完整流程

在 CentOS 上安装 Python 3.11.9 并替换系统中的默认 Python 版本&#xff0c;可以按照以下步骤来进行。请注意&#xff0c;替换默认 Python 版本可能会影响系统的其他工具和依赖&#xff0c;因此请谨慎操作。 步骤 1&#xff1a;安装依赖 首先&#xff0c;确保系统安装了编译…

java数据结构与算法:栈

栈 1、栈的基本概念2、Java模拟简单的顺序栈实现3、增强功能版栈4、利用栈实现字符串逆序5、利用栈判断分隔符是否匹配6、总结 1、栈的基本概念 **栈&#xff08;英语&#xff1a;stack&#xff09;**又称为堆栈或堆叠&#xff0c;栈作为一种数据结构&#xff0c;是一种只能在…

【Conda】Windows下conda的安装并在终端运行

下载 在官网下载 https://www.anaconda.com/download/success 安装 双击 一直下一步安装 配置环境变量 为了在终端运行&#xff0c;需配置环境变量 进入到安装conda的目录并复制路径 设置高级环境变量 在终端运行 输入&#xff1a; conda list表明可以正常运行 参考…

游戏引擎学习第七天

视频参考:https://www.bilibili.com/video/BV1QFmhYcE69 ERROR_DEVICE_NOT_CONNECTED 是一个错误代码&#xff0c;通常在调用 XInputGetState 或 XInputSetState 函数时返回&#xff0c;表示指定的设备未连接。通常会出现以下几种情况&#xff1a; 未连接控制器&#xff1a;如…

用 Collections.synchronizedSet 创建线程安全的 HashSet

在 Java 中&#xff0c;HashSet 本身并不是线程安全的。如果在多线程环境下使用 HashSet&#xff0c;你需要采取额外的同步措施来保证线程安全。Collections 工具类提供了一种简便的方法来创建线程安全的集合——synchronizedSet 方法。这种方法通过在所有公共方法上添加同步块…

【网络安全渗透测试零基础入门】之SNMP放大攻击原理及实战演示,零基础入门到精通,收藏这一篇就够了!

前言 这是小强给粉丝盆友们整理的网络安全渗透测试入门阶段dos与ddos渗透与防御教程。 喜欢的朋友们&#xff0c;记得给我点赞支持和收藏一下&#xff0c;关注我&#xff0c;学习黑客技术。 SNMP&#xff08;Simple Network Management Protocol &#xff09;&#xff1a;简单…

el-dialog 设置 水平垂直居中 高度不固定

小记一下&#xff1a; 希望实现不管内容高度多少 el-dialog都能水平垂直居中 效果&#xff1a; css: .form-view-dialog{display: flex;align-items: center;justify-content: center;.el-dialog{margin: 0 auto; }.el-dialog__body{max-height: 75vh; // 可选择 设置一个最…

后端接口返回二进制文件,前端 window.opent预览展示

详细步骤 1.修改 PreviewApi 函数&#xff1a; 设置 responseType 为 ‘arraybuffer’&#xff0c;以接收二进制数据。 export const PreviewApi (data) > request({method: post,url: /dev-api/preview,responseType: arraybuffer,data });3.处理响应&#xff1a; 使用…

EMC Plus:外壳中的 PCB 演示

EMC Plus 提供了计算任何导入的近场源文件的字段统计信息的高级功能。在本演示中&#xff0c;我将指导您完成分析辐射电场的分步工作流程&#xff0c;特别是由 EMC Plus 中从 SIwave 导入的近场源产生的辐射电场。让我们开始吧&#xff01; 概述 以下模型是计算机机箱&#x…

【免越狱】iOS砸壳 可下载AppStore任意版本 旧版本IPA下载

软件介绍 下载iOS旧版应用&#xff0c;简化繁琐的抓包流程。 一键生成去更新IPA&#xff08;手机安装后&#xff0c;去除App Store的更新检测&#xff09;。 软件界面 支持系统 Windows 10/Windows 8/Windows 7&#xff08;由于使用了Fiddler库&#xff0c;因此需要.Net环境…