客户端请求服务器的步骤

当我们在浏览器地址栏输入’http://www.xxx.com/api/xxx"时,客户端是如何找到服务器并发送请求的?

1.先找到服务器

        a.检测浏览器缓存有没有缓存该域名对应的IP地址,有则通过IP地址取找服务器。

        b.检测本地的hosts文件,是否有记录该域名对应的IP地址,有则通过IP地址取找服务器。(如果本机此文件中自己修改了服务器Ip和域名的绑定关系)在本机会生效的。

        c.通过DNS服务器解析,找到该域名对应的IP地址,然后通过IP地址取找服务器。

        window系统下的hosts文件路径:

2.进行三次握手(建立连接,确认下双方是否有发送数据和接收数据的能力)

        a.第一次握手是在建立连接,客户端发送连接请求报文段,把标有SYN的数据包发给服务器端即为接收端。

        b.第二次握手是服务器端即接收端收到客户端的SYN的报文段,同时发送标有SYN/ACK的数据包。

        c.第三次握手是客户端收到服务器端的SYN/ACK的数据包后,向服务器端发送标有ACK的数据包。

3.发送请求,传输数据

4.服务器处理,并做出响应

5.浏览器接收响应结果。

        a.处理数据,渲染到页面中(首次渲染会有重绘和回流)

6.四次挥手(作用是断开连接)

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

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

相关文章

inflate流程分析

一.inflate的三参数重载方法else里面逻辑 我们先看到setContentView里面的inflate的调用链: public View inflate(LayoutRes int resource, Nullable ViewGroup root) {return inflate(resource, root, root ! null);}public View inflate(LayoutRes int resource…

Linux下安装redis

Linux下安装redis Linux下安装redis1. 下载Redis2. 解压并安装Redis2.1 解压2.2 移动redis目录2.3 编译2.4 安装 3. 启动redis4. redis.conf配置文件5. 一些错误以及常用命令5.1 查看Redis是否正在运行5.1.1、采取查看进程方式5.1.2、采取端口监听查看方式 5.2 redis-cli5.3 远…

Java项目:04 好物分享管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 好物分享平台 项目是单体ssm好物分享平台,包括用户平台及后台管理系统, 前台系统包含首页门户、好物推荐、好物搜索、好物展示…

BikeDNA(七)外在分析:OSM 与参考数据的比较1

BikeDNA(七)外在分析:OSM 与参考数据的比较1 该笔记本将提供的参考自行车基础设施数据集与同一区域的 OSM 数据进行所谓的外部质量评估进行比较。 为了运行这部分分析,必须有一个参考数据集可用于比较。 该分析基于将参考数据集…

Oracle篇—实例中和name相关参数的区别和作用

☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…

如何将jpg图片大小压缩?这个方法建议收藏

如何将jpg图片大小压缩?平时在分享jpg图片的时候,如果遇到图片过大无法使用的情况,可以试试本文分享的这个方法,通过图片在线处理工具压缩jpg文件大小,还不会操作的小伙伴也不用担心,下面小编会详细介绍jpg…

2024-01-09 Android.mk 根据c文件名插入特定的宏定义,我这里用于定义log LOG_TAG 标签

一、在Android的构建系统中,使用Android.mk构建脚本可以根据特定需求来定义宏。如果你想根据C文件的名称来插入特定的宏定义,可以使用条件语句检查文件名,并相应地设置宏。 在Android的构建系统中,使用Android.mk构建脚本可以根据…

C/S架构,集成三维影像后处理功能,自主版权的一套医院PACS系统源码

一、PACS简介 PACS(PictureArchivingandCommunicationsSystem)即图像存储与传输系统,是应用于医院的数字医疗设备如CT、MR(磁共振)、US(超声成像)、X光机、DSA(数字减影&#xff09…

【C语言期末】基于VS2022的学生成绩管理系统(2)

诚接计算机专业编程任务(C语言、C、Python、Java、HTML、JavaScript、Vue等)10/15R,如有需要请私信我,或者加我的企鹅号:1404293476 本文资源:https://download.csdn.net/download/weixin_47040861/88737450 1.题目要求 设计题目…

探索设计模式的魅力:简单工厂模式

简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,其主要目的是用于创建对象的实例。这种模式通过封装创建对象的代码来降低客户代码与具体类之间的耦合度。简单工厂不是GoF(四人帮)设计模式之一&#xff0c…

Java合并两个有序链表

思路: 创建一个临时的节点,命名傀儡节点,可以理解成临时的头节点,newHead,list1和list2的两两元素比较,小的连接newHead(升序)newHead的路径(蓝色)就是连接后…

第8章-第4节-Java中字节流的缓冲流

1、缓冲流:属于高级IO流,并不能直接读写数据,需要依赖于基础流。缓冲流的目的是为了提高文件的读写效率?那么是如何提高文件的读写效率的呢? 在内存中设置一个缓冲区,缓冲区的默认大小是8192字节&#xff…