首页 > 其他分享 >前端知识-网络

前端知识-网络

时间:2025-01-20 10:42:48浏览次数:1  
标签:HTTP 请求 前端 知识 网络 域名 DNS IP地址 服务器

网络

DNS

通过DNS服务器将域名转换成IP地址, 从而实现正确的网络连接. DNS服务器不仅部署在互联网的各个角落, 每一台终端设备都会内置本地DNS服务器.

  • DNS查询

DNS查询时, 会依次经过应用程序的缓存, 本地hosts, 本地DNS服务器, 根服务器, 顶级域名服务器, 权威服务器, 最后得到真正的IP地址

  • 购买域名

从域名服务商购买顶级域名, 同时提供域名解析服务

DNS记录的类型: A ( 保存最终要返回的IP地址 ), AAAA, CNAME ( 将子域名映射到另一个域名, 可以指向相同主域名或其他主域名 ), TXT, MX

  • 分布式部署

在A记录上直接填写固定IP地址的方式只适用于简单的单机部署网站.

在大型应用中, 应用服务器以分布式方式部署, IP地址动态变化, 因此会采用动态解析IP地址的方式, 将同一个域名根据不同网络运营商, 不同地区, 解析到不同IP的服务器上.

这些服务器不是最终的应用服务器(不会暴露于公网环境), 而是具备反向代理能力的负载均衡(LB)服务器, WEB应用防火墙(WAF) 等等.

DNS服务器还会提供安全插件(DNSSEC), DNS分析, 边缘网络加速解析, DDoS防护等功能.

  • 加速DNS解析

DNS解析加速: 高性能DNS服务器, 配置DNS缓存, 增加DNS记录的缓存时间(TTL).

前端通过浏览器提供的DNS预取功能来指定需要提前解析的域名, 可以让浏览器在解析完该标签后立即进行DNS查询

<link rel="dns-prefetch" href="//cdn.example.com">

  • 跨域问题

利用DNS的查询原理, 通过修改本地hosts的方式来给项目配置一个域名, 而不是直接使用localhost, 这能有效解决与服务器联调时cookie无法跨域传输的问题

如果项目依赖中硬编码线上域名, 通过修改本地DNS记录, 可以在不改变代码的情况下, 将线上域名映射到本地或者联调环境, 方便问题验证和多环境联调

  • CDN-内容分发网络

当不同地区的用户访问前端静态资源时, 会从不同的CDN节点下载数据, 这归功于DNS系统的CNAME记录. DNS服务器会根据用户所在地区, 返回不同的CNAME域名(CDN加速域名).

HTTP协议

工作在TCP/IP协议栈的应用层, 底层的数据传输由TCP或UDP负责.

常用版本: HTTP/1.1, HTTP/2(多路复用, 二进制帧层, 头部压缩等特性, 提升传输性能), HTTP/3(基于QUIC协议使用UDP作为传输层, 进一步降低连接延迟和提升传输性能)

HTTPS: 加盖了一层SSL/TLS来实现加密传输

  • 请求与响应

HTTP协议大体上是一种问答形式, 客户端发出请求, 服务器处理请求, 然后再给出响应.

服务器根据不同场景返回不同的响应码, 2表示成功, 3表示重定向, 4表示客户端错误, 5表示服务端错误.

在请求和响应报文中, 除了请求方法和响应码外, 最值得关注的就是请求头响应头:

  • 用于请求上下文的Host, Referer, User-Agent

  • 用于响应上下文的Allow, Server

  • 用于缓存的Cache-Control, Last-Modified/Last-Modified-Since, ETag/If-NoneMatch

  • 用于Cookie的Cookie和Set-Cookie

  • 用于安全的X-Frame-Options, Strict-Transport-Security(HSTS)

  • 用于跨域控制(CORS)的Origin和Access-Control-* 一套

  • Web API

浏览器加载资源会使用HTTP协议, 前端与服务端的异步请求通常也通过HTTP协议完成

最早使用XMLHttpRequest(XHR)在浏览器中发起一个异步请求, 基于XHR的有jQuery, ajax, superagent和axios

后来的Fetch API标准在不同环境下有不同的实现, 比如Node.js环境下基于Undici, 边缘运行时(Edge Runtime)中, Fetch API也会依据平台有所不同.

  • 测试

在针对API测试的场景下, 可以通过Postman等自动化工具来批量测试; 调试移动设备内的HTTPS则需要安装信任证书以及通过网络代理工具来实现; 对于远程或是生产环境, 通过抓包和分析服务端日志来完成

  • 扩展

大型客户端应用中, 为了更高效和安全的传输数据, 同时兼容HTTP协议(原始HTTP协议在更复杂的高并发场景下, 会不够高效稳定), 大型技术基建通常会设计一层无线网关(Gateway), 并对HTTP进行定制, 增加登录验证, 请求跟踪, 监控, 限流等功能. 而前端代码通过远程过程调用(RPC)的方式, 而非直接使用原始HTTP.

标签:HTTP,请求,前端,知识,网络,域名,DNS,IP地址,服务器
From: https://www.cnblogs.com/khrushchefox/p/18680896

相关文章

  • 完整的 c 语言用到的基础知识总结
    作者:baron博客:baron-z.cn    用于记录c语言基础知识,如果没有特别说明本文的所有代码编译环境为gcc编译器编译,学习资料来自狄泰软件学院可在淘宝购买学习一、基本数据类型1、数据类型含义   固定内存大小的别名作用   创建变量c语言数据类型......
  • 百兆/千兆/万兆(100Mbps/1000Mbps/10000Mbps)网络带宽的实际传输速率粗略计算 (转)
    首先关于网络带宽有两个值:理论带宽与实际带宽。实际带宽是由于实际的应用中,要再扣约12%的EthernetHeader,IPHeader,TCPHeader,ATMHeader等控制讯号,然后再排除网络损耗以及线路衰减等因素,所以实际带宽都达不到理论值百兆网(100Mbps):100Mbps理论传输速度是12.5MB/s,实际11MB/......
  • cilium 采集网络事件
    ciliumv1.15.1为了实时性,内核态eBPF写入BPF_MAP_TYPE_PERF_EVENT_ARRAY,用户态eBPF从中读取trace和drop事件。bpf/lib/trace.hsend_trace_notify4函数bpf/lib/events.hciliumEVENTS_MAP使用的__NR_CPUS__来自nproc--all即节点cpu数量。pkg/monitor/agent/agent.goAttachTo......
  • TensorFlow卷积神经网络识别CiFar10物品分类
     In [1]:importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimporttensorflowastffromsklearn.preprocessingimportStandardScaler In [2]:(x_train_all,y_train_all),(x_test,y_test)=tf.keras.datasets.ci......
  • 带你从入门到精通——深度学习(六. 神经网络的优化方法和正则化)
    建议先阅读我之前的深度学习博客,掌握一定的深度学习前置知识后再阅读本文,链接如下:带你从入门到精通——深度学习(一.深度学习简介和PyTorch入门)-CSDN博客带你从入门到精通——深度学习(二.PyTorch中的类型转换、运算和索引)-CSDN博客带你从入门到精通——深度学习(三.PyTorch......
  • Linux基础知识
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录概述一、Linux常用命令1.1文件与目录操作1.2查看文件内容1.3文本内容处理1.4查询操作1.5压缩和解压缩二、VI和VIM的使用2.1概述2.2VI/VIM的基本模式三、用户和组3.1概述3.2用户的增删......
  • Redis(1)基本知识大全
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录简介一、Redis的分类二、Redis的常用命令2.1基本命令2.2字符串相关命令2.3Hash相关命令2.3List相关命令2.4Set相关命令2.5ZSet相关命令简介Redis(RemoteDictionaryServer),即......
  • 知识付费的理由不能是焦虑
    清楚每一笔钱是用于什么,花在什么地方,用在什么地方,带来了什么效果。可以帮你省钱,避坑,还能缓解焦虑。有不少同学是重度知识付费用户,当然我其实也算其中一类,付费的课程,社群,训练营,圈子等等都不少。有人属于为改变付费,有人属于为焦虑付费。1、为改变付费很明确自己付费的理......
  • 1-1.Vue2 前端开发 - 富文本编辑器 wangEditor 引入
    一、富文本编辑器wangEditor1、富文本概述富文本(RichText)是一种包含丰富格式和样式的文本富文本不仅限于纯文字,还可以包含字体、颜色、大小、图片、链接、表格等多种元素与纯文本(PlainText)相比,富文本提供了更丰富的视觉和功能表现富文本的常见应用场景有:网页内......
  • 卷积神经网络入门
    从DFT到FFT及其快速计算卷积上的代码实现,并搭建卷积神经网络ps:原始代码来自https://www.ruanx.net/cheat-neural-network/。本文主要是在这个微型神经网络的基础上加点卷积成分。傅里叶变换(FourierTransform)是一种重要的数学工具,用于将时间域或空间域的信号转换到频域,揭示信号......