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

这里写目录标题

  • 前后端
    • 接口文档
      • 简介
      • 前后端视角
        • 对于前端
        • 对于后端
          • 代码
          • 注册路由
          • 路由处理函数
      • 关于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

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

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

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

相关文章

leetcode104:二叉树的最大深度

给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2: 输入:root [1,null,2] 输出…

大语言模型理论基础

文章目录 前言大语言模型必需知识概述大语言模型目标模型上下文神经网络的神经元常见激活函数SigmoidTanhRelusoftmax 通用近似定理多层感知机(MLP)拟合最后 前言 你好,我是醉墨居士,我们接下来对大语言模型一探究竟,…

关于VUE NPM安装失败的问题

最近使用 npm install --registryhttps://registry.npmmirror.com 安装一个新项目的依赖,各种失败。 最后发现是package-lock里面有老的淘宝的域名,整体替换掉就行了

【数据结构】宜宾大学-计院-实验七

实验七 二叉树 一、实验目的:二、实验内容:三、实验结果:1,2;3,4,5;6.数组顺序存储的优缺点二叉链表存储的优缺点 一、实验目的: 掌握二叉树的顺序存储结构 掌握二叉树的链式存储结构 二、实验内容: 1&am…

游戏如何应对内存修改

据观察,近年来游戏黑灰产攻击角度多样化趋势显著,主要面临工作室、定制注入挂、模拟点击挂、内存修改挂、破解版等多方面安全问题。 据FairGuard数据统计,在游戏面临的众多安全风险中,「内存修改」攻击占比约为13%,主…

git重置的四种类型(Git Reset)

git区域概念 1.工作区:IDEA中红色显示文件为工作区中的文件 (还未使用git add命令加入暂存区) 2.暂存区:IDEA中绿色(本次还未提交的新增的文件显示为绿色)或者蓝色(本次修改的之前版本提交的文件但本次还未提交的文件显示为蓝色)显示的文件为暂存区中的文件(使用了…

Clickhouse集群新建用户、授权以及remote权限问题

新建用户 create user if not exists user on cluster 集群名称 IDENTIFIED WITH plaintext_password BY 密码;给用户授查询、建表、删表的权限 GRANT create table,select,drop table ON 数据库实例.* TO user on cluster 集群名称 ;再其他节点下用户建本地表成功&#…

Exploring Defeasible Reasoning in Large Language Models: A Chain-of-Thought A

文章目录 题目摘要简介准备工作数据集生成方法实验结论 题目 探索大型语言模型中的可废止推理:思路链 论文地址:http://collegepublications.co.uk/downloads/LNGAI00004.pdf#page136 摘要 许多大型语言模型 (LLM) 经过大量高质量数据语料库的训练&…

应用程序部署(IIS的相关使用,sql server的相关使用)

数据服务程序(API)部署 1、修改配置文件 打开部署包中的web.config配置文件,确认数据库登录名和密码正确 修改ip为电脑IP(winR输入cmd,输入ipconfig,IPv4对应的就是本机IP) 2、打开IIS&#x…

RHCE-DNS域名解析服务器

一、DNS简介 DNS ( Domain Name System )是互联网上的一项服务,它作为将域名和 IP 地址相互映射的一个分布式 数据库,能够使人更方便的访问互联网。 DNS 系统使用的是网络的查询,那么自然需要有监听的 port 。 DNS 使…

插入排序(sort)C++

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 时间限制:C/C/Rust/Pascal 1秒,其他语言2秒 空间限制:C/C/Rust/Pascal 512 M,其他语言1024 M 64bit IO Format: %lld 题目描述 插入排序是一种…

Vue2:脚手架 vue-cli

Vue2:脚手架 vue-cli 结构renderrefpropsmixinscoped 脚手架是Vue官方提供的Vue开发平台,.vue文件就需要通过脚手架来解析,所以对于单文件组件就依赖于脚手架。 安装: npm i -g vue/cli如果执行vue --version有输出,…

【MYSQL】主从复制机制(图解)

一、什么是主从复制 主从复制是一种通过binlog(二进制日志)进行操作的一直复制机制,它会有一个主数据库,还会有一个从数据库,根据binlog就可以把主数据库中的信息复制到从数据库之中。这个主从复制的好处就是如果在并发…

SpringCloud Gateway网关路由配置 接口统一 登录验证 权限校验 路由属性

介绍 Spring Cloud Gateway 根据请求的路径、HTTP 方法、头部等信息,将请求路由到对应的微服务实例。它支持基于动态路由规则的配置,可以根据请求的 URL、查询参数、请求头等条件,灵活地决定将请求转发到哪个微服务。Spring Cloud Gateway 提…

Java学习Day60:回家!(ElasticStatic)

1.what is ElasticStatic The Elastic Stack, 包括 Elasticsearch、 Kibana、 Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。 Elaticsearch,简称…

《进制转换:数字世界的奇妙变身术》

思维导图 一、什么是进制转换 在当今数字化飞速发展的时代,数字如同构建整个数字宇宙的基本粒子,无处不在且发挥着至关重要的作用。而在这个数字的魔法世界里,进制就像是不同的语言规则,每种进制都有着独特的构建方式和逻辑。 我…

Unity3D高级编程

1、标签(Tag)和图层(Layer) 他们都用于游戏物体分类,但是侧重点不一样。 标签便于代码中对特定物体进行操作。 图层则服务于渲染和碰撞管理,如控制摄像机渲染、光源影响及碰撞设置。 标签和图层的位置: (1)标签Tag…

Jmeter基础篇(22)服务器性能监测工具Nmon的使用

一、前言 我们在日常做压测的过程中,不仅仅需要监控TPS,响应时间,报错率等这些系统基础性能数据,还需要对服务器的性能(如CPU、磁盘、内存、网络IO等)做监控,以求对系统运行过程中的硬件性能有…

IDEA最新最全设置教程(包括常用的插件)

一、目的 统一安装一些必要的插件,方便大家开发。统一代码格式、注释格式、统一字符集编码。新加入的同事可以快速适应和熟悉,不需要在讲解IDEA配置问题。二、IDEA要修改的设置 新项目设置和设置 1. Java编译版本 这里请使用自己的JDK 2. 统一IDEA字符集 统一使用UTF-8 无…

日本IT工作好找吗?

在日本做IT是否好找工作,实际上取决于多个因素,包括个人的技术能力、日语水平、工作经验以及市场需求等。以下是对这一问题的详细分析: 技术能力与日语水平 技术能力:IT行业是一个技术密集型行业,技术能力自然是求职…