论上网的过程(一)

1、从输入网址开始:

  当我们想访问一个网站时,必须要输入一个网址,比如我想访问CSDN,它的网址(URL)是:https://www.csdn.net:443,有人就要问这443是什么鬼,我输入网址的时候都没有输入这玩意啊,实际上在我们输入网址并回车的过程中,游览器自动的加上了这个443端口(另外HTTP请求的端口是80),现在不明白也没关系,在我以后的博客中会讲到,我们现在只需要记住,http请求的端口是80,https请求的端口是443就行了,这是我们日常生活中常用的。

2、浏览器解析网址:

  在分析游览器解析网址之前,我们先来看下网址中的各个元素,还是以CSDN为例,https://blog.csdn.net/nav/cloud-native?spm=1001.2100.3001.4477,可将此网址按照以下图片来拆分其元素

在游览器中有一个Socket库,Socket库中包含很多程序组件,其中有个名为gethostbyname的解析器,可以通过它向DNS服务器发出查询(使用UDP协议,这里不理解没关系,之后的博客会说到),这里简单的介绍DNS服务器,在DNS服务器中保持了相应的域名和IP地址,简单的说就是把我们输入的域名转化为IP地址(这里对DNS服务器只是简单介绍,感兴趣的朋友们自行百度,不感兴趣的朋友只需要知道它可以将域名转化为相应的地址即可),知道了IP地址后我们才能委托操作系统将消息发送给Web服务器(这里补充一句,IP地址分为公网和私网,这里查询到的为公网IP地址,感兴趣的朋友自行百度)。

3、应用程序生成http请求消息(这里指游览器):

  知道了IP地址之后,接下来,游览器将会生成HTTP或HTTPS请求消息(这里就有人要问了,HTTP和HTTPS有什么区别吗,在这里简单的说一下,HTTPS比HTTP更安全,感兴趣的朋友自行百度),其中请求消息中包含了很多方法,如GET,POST等,不过在我们上网时,最主要还是这两种方法(现在不理解没关系,之后的博客中会讲到),将请求消息发送出去后,我们会收到响应消息,返回响应消息后,浏览器会将其中的数据提取出来并显示在屏幕上,就形成了我们看到的网页,以下附上一些请求和响应消息的图片

 4、委托操作系统发送消息

    现在我们通过DNS服务知道了接收方的IP地址,以及我们要发送的数据后,我们就需要把消息发送出去,游览器并不具备发送消息的功能,这时候就需要委协议栈来实现向目的地发送消息的功能,简单来说,游览器会通过Socket库中的另一个名为socket程序组件来创建一个数据通道(Socket和socket不一样,前者是库,大写S,后者是程序组件,小写s,实际上不存在这个数据通道,只是比喻,好让人理解),这个数据通道的接口称为套接字(大家可以DOS中输入netstat -ano来查看套接字),之后,应用程序(这里指游览器)调用Socket库中的connect将服务器和游览器的套接字连接起来(一般来说,服务器的套接字从启动时就已经创建完毕,被动的等待客户端的连接)连接起来后就可以进行数据的发送和接收了,发送完数据后还会调用close程序组件来进行套接字的断开(这里说一下,连接双方套接字要进行三次握手,断开则需要四次挥手,现在不理解没关系,之后的博客中会讲到),以下附上一些有关图片,帮助大家理解

  到这里也差不多了,这些为本人自己的一些理解,如有错误,欢迎指正,本人现为大一非专业新生,跨专业学习,本人博客会不定期更新,希望这篇文章对各位观众老爷有所帮助

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值