0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HTTP调用要用到什么技术

汽车玩家 来源:工控自动化专家 作者:工控自动化专家 2020-04-12 18:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

DNS 解析域名

什么是 DNS

我们访问网站的时候会输入域名,而在真实网络中主机通信是通过 IP 地址进行通信的,DNS 服务器的作用就是将这域名字符串解析为对应的 IP 地址

有哪些 DNS 服务器

如果说每输入一个域名都需要去一个 DNS 服务器解析的话,全世界这么高的访问量,肯定是无法承载的,所以会对 DNS 服务器进行按层分级,不同类型的 DNS 服务器负责解析不同的域名

本地 DNS 缓存:电脑会将解析到的域名和 IP 地址等缓存到本地上,windows 可以通过 ipconfig /displaydns 查看

本地 DNS 服务器

如果电脑是自己设置了 DNS 那么本地 DNS 服务器就是这个地址

如果是根据路由器 DHCP 自动分配,那么本地 DNS 服务器就是路由器的 DNS 地址

路由器会将请求分发给上层的网络服务提供商的 DNS

根域名服务器:根服务器主要用来管理互联网的主目录,它包含了顶级域名服务器的 IP 地址

.com 顶级域名服务器对应的 IP 地址

.cn 顶级域名服务器对应的 IP 地址

.net 顶级域名服务器对应的 IP 地址

其它

顶级域名服务器:在它其中包含了权威域名的服务器的 IP 地址

权威域名服务器:返回域名对应的目标主机 IP

DNS 解析流程

HTTP调用要用到什么技术

当我们输入 www.abc.com 域名的时候

首先去本地缓存中查找域名对应的 IP 是否存在,如果存在则直接返回

如果不存在则去本地 DNS 服务器中查找,如果本地 DNS 服务器有则直接返回

如果本地 DNS 服务器中不存在则开始递归查找

首先查找根域名服务器发现访问的是 .com 然后返回给本地 .com DNS 服务器对应的 IP 地址

然后本地继续去请求 .com 这个顶级域名服务器,顶级域名服务器查找到了 www.abc.com 对应的 DNS 服务器的 IP 地址返回给客户端

然后本地去请求 www.abc.com 对应的 DNS 服务器解析这个域名,DNS 服务器解析后返回对应的主机 IP 地址

在第 6 步骤,DNS 服务器解析后可以返回多个对应的主机 IP 地址,那么客户端访问的时候可以通过随机或者轮询等访问做简单的负载均衡处理

上述流程就是一个没有给域名配置 CDN 的流程

CDN 加速静态资源访问

什么是 CDN

百度百科:CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术

内存存储

比如说我们有个图片网站应用部署在成都,一开始应用只在成都当地推广本地人使用。后面业务发展出去了,全国各地的人都在访问了,处于新疆乌鲁木齐的用户发现图片加载的速度变得很慢(因为图片这些数据需要从成都通过网线传输到乌鲁木齐太远了,而且中途可能存在网络拥挤等等原因)那么想个办法,我们在乌鲁木齐部署一个缓存服务器,后续乌鲁木齐的用户只要访问过某张图片就将其缓存到乌鲁木齐的服务器上,后续的访问就可以变得更快

分发技术

比如说访问乌鲁木齐缓存服务器没有对应的图片缓存的时候,这个时候可以去访问西北数据中心获取数据,西北数据中心没有再去源数据中心获取,这样可以尽可能的减少对源数据中心的访问减少源数据中心压力的同时,加速用户的访问体验

HTTP调用要用到什么技术

边缘结点:距离用户最近的数据访问中心,比如成都

区域结点:如果边缘结点中没有查找到到对应的缓存可以去区域结点中,比如西南区域

中心节点:如果区域结点数据还是没有命中则需要回源(访问源数据中心节点)

经过一层一层数据中心节点数据访问过后,数据会依次缓存到对应的数据中心节点中,后续用户访问就可以临近访问了

CDN 可以缓存什么

网页、图片、文件等一些不经常改变的数据,可以缓存到 CDN 中

CDN 如何更新数据

查找的数据有可能不存在,也有可能过期了,如何更新 CDN 缓存呢

拉取模式

推送模式

如果是某份热点数据,一开始就近 CDN 缓存中没有就向上拉取,如果出现回源,可能导致源数据中心压力会过大。

这个时候可以采取主动推送模式,将热点数据主动推送到边缘结点。

CDN 带来的问题

防盗链问题

请求附带 refer 标示来源

时间戳防盗链

数据过期问题

当服务器数据更新后,CDN 数据还未更新时静态资源访问可能存在不一致的问题

资源都是有设置过期时间的,等到过期时间到了就会回源拉取最新内容

主动刷新 CDN 缓存,强制性的让缓存失效全部回源拉取最新数据

CDN 解析流程

HTTP调用要用到什么技术

此时配置了 CDN 后,不会直接返回对应的 IP 地址而是返回 CNAME 对应的 CDN 域名 abc.cdn.com

解析 abc.cdn.com 得到对应的 IP 地址后请求该 CDN DNS 服务器,此时返回全局负载均衡域名地址

解析 abc.cdn.gslb.com 得到对应的 IP 地址后请求该全局负载均衡器,根据用户的 IP 地址、所处运营商、URL 携带内容以及各 CDN 服务器的负载情况选择最为合适的最近的一台或者多态服务器的 IP 地址给客户端

客户端可以通过简单的随机或者轮询等操作发起调用

建立 HTTP 连接

HTTP 协议通过 TCP 协议进行数据传输,在传输数据之前需要建立 TCP 连接

HTTP调用要用到什么技术

在 HTTP 通信的时候,建立连接和断开连接分别需要 3 次握手和四次挥手,效率还是很低的在 HTTP/1.0 的时候每次发送数据都需要建立连接响应完成后就需要断开连接。自 HTTP/1.1 开始就是长连接了,除非一端主动断开连接,这样极大的提升了通信的效率。

服务端负载均衡处理

服务端一般采用 Nginx 等服务器来做负载均衡处理,客户端过来的 HTTP 请求会与 Nginx 建立长连接后开始数据传输到达 Nginx,Nginx 会维护到达不同服务器的长连接将数据转发到真实的后端服务器

当然 nginx 也可以以短连接的方式发起请求,只是使用长连接能够减少 3 次握手和 4 次挥手大大的提升通信效率,减缓网络拥挤的情况

长连接带来的问题

我们使用长连接的时候会设置长连接的超时时间,到达时候会释放连接,那么在连接释放的时候,首先服务端会发送 FIN 包到达客户端,客户端还未收到 FIN 包的时候,发起了一个 HTTP 请求的话,那么这个请求就会响应 NoHttpResponseException

解决方案:

客户端重试机制(指定最多重试的次数)

定时提前清理闲置的链接,客户端启用定时任务,在超时之前主动与服务端断开连接即可

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HTTP
    +关注

    关注

    0

    文章

    538

    浏览量

    35553
  • DNS
    DNS
    +关注

    关注

    0

    文章

    230

    浏览量

    21228
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    调用野莓平台商品详情API接口实践

    方式、请求参数、响应数据结构、错误处理以及最佳实践建议。 1. 接口概述 野莓平台商品详情API接口主要用于查询单个商品的详细信息。它是一个 RESTful风格 的接口,通常使用 HTTP GET 方法进行调用。接口的基本URL
    的头像 发表于 02-04 16:42 654次阅读
    <b class='flag-5'>调用</b>野莓平台商品详情API接口实践

    串口中断和定时中断,外部中断在一起如何调用

    当系统有个定时中断。 比如定时采集温度值,然后通过串口发送到上位机。这样程序里要用到定时中断和串口中断 比如定时1s采样一次。那么是1s内调用串口中断。还是1s外再调用 如果是1s后才允许用串口
    发表于 01-14 06:25

    工业领域为什么会用到HTTP协议

    工业领域使用HTTP协议主要源于其 通用性、易用性、扩展性 以及与现代工业系统集成需求的契合,尽管工业环境对实时性、可靠性的要求较高,但HTTP在特定场景下仍能发挥关键作用。以下是具体原因分析
    的头像 发表于 12-27 09:38 265次阅读

    HTTP物联网网关是什么?有什么功能?

    HTTP物联网网关是连接物联网设备与云端平台的核心设备,它以HTTP协议为基础,实现设备与云端之间的数据交互,并具备协议转换、数据预处理、安全管理和设备管理等功能 。以下是详细介绍: 一、核心定义
    的头像 发表于 12-24 11:33 516次阅读
    <b class='flag-5'>HTTP</b>物联网网关是什么?有什么功能?

    HTTP通信网关是什么?有什么功能?

    HTTP通信网关是连接不同网络或协议的关键设备/服务器,在HTTP通信中扮演着协议转换、安全加固、性能优化等核心角色,其本质是 实现不同协议或网络间的数据转发与处理 。以下是其核心功能与工作机制
    的头像 发表于 12-23 11:14 615次阅读

    Python调用API教程

    两个不同系统之间的信息交互。在这篇文章中,我们将详细介绍Python调用API的方法和技巧。 一、用Requests库发送HTTP请求 使用Python调用API的第一步是发送HTTP
    的头像 发表于 11-03 09:15 1179次阅读

    什么场景要用到特种光缆呢

    特种光缆因其独特的性能设计,被广泛应用于对光缆有特殊要求的场景中,以下是一些典型应用场景及对应特种光缆类型: 一、电力通信领域 高压输电线路通信 OPGW(光纤复合架空地线):兼具避雷与通信功能,适用于新建66kV以上高压输电线路。其金属铠装外层可抵御高压电蚀,满足大跨越需求,是电力通信网的核心组成部分。 ADSS(全介质自承式光缆):采用非金属结构,支持带电架设,适用于旧网改造或电腐蚀严重区域。其抗拉力强,可跨越河流、山涧
    的头像 发表于 10-31 09:52 916次阅读

    API接口使用全指南:从基础调用到实战技巧

    一、API接口的基本认知 API接口本质上是一组预先定义的规则,规定了不同系统之间如何传递数据。常见的API类型包括: RESTful API:基于HTTP协议,通过GET/POST/PUT
    的头像 发表于 10-08 09:25 991次阅读

    使用studio,最高版本的系统是4.0.3,用到LVGL,但是可选的版本是9.1的,不匹配怎么解决?

    使用studio搭建的系统,选的是4.0.3版本,需要用到LVGL,但是版本没的选,只有9.1最高的版本,系统不匹配怎么办?
    发表于 09-29 09:56

    企业数字化改造需要用到哪些平台

    企业数字化改造需根据业务需求、技术基础和转型目标选择适配平台,以下是关键平台类型及推荐方案: 一、核心业务数字化平台 低代码/零代码开发平台 适用场景 :快速构建CRM、ERP、OA等业务系统,降低
    的头像 发表于 07-07 17:57 1736次阅读

    线控制动要用到哪些传感器?

    的提升,不只是单纯的电动化,在去除了机械连接后,实际上线控制动也带来了很大的性能提升。比如小米此前公布的预研技术中表示,小米智能底盘上采用了48V低压系统,从 SU7 的 12V DPB+ESP10.0 电子液压制动跃级至 48V 四轮全干电子机械制动
    的头像 发表于 06-27 00:29 4381次阅读

    HTTP协议在工业领域会用到

    HTTP协议在工业领域会用到,并且在工业互联网、设备管理、数据交互等多个方面发挥着重要作用,以下为你详细介绍: 工业互联网场景 设备接入与管理 原理:在工业互联网平台中,各类工业设备(如传感器
    的头像 发表于 06-03 09:17 785次阅读

    HarmonyOS5云服务技术分享--ArkTS调用函数

    : ? 第一步:创建HTTP触发器 进入函数详情页 -> 点击【触发器】标签 -> 添加新触发器 配置参数时要注意: 触发器类型选HTTP 请求方式目前仅支持POST 认证类型
    发表于 05-22 18:22

    电力|智能配电房需要用到哪些设备?

    一、核心电力设备:智能化的基础智能配电房的核心电力设备是实现配电自动化、高效运行和远程管理的关键。这些设备不仅具备传统配电设备的功能,还集成了先进的传感、通信和控制技术,能够实时监测、分析和优化
    的头像 发表于 05-09 11:27 991次阅读
    电力|智能配电房需<b class='flag-5'>要用到</b>哪些设备?

    在KaihongOS应用开发中,如何通过HTTP发起一个数据请求

    接口文档请参考:@ohos.net.http (数据请求)。 request接口开发步骤 从@ohos.net.http.d.ts中导入http命名空间。 调用createHttp
    发表于 05-08 06:44