计网,还得从url说起
作者:互联网
计网,还得从url说起
在学习的过程中,如果我们可以通过一个问题,把所有我们需要掌握的知识点串联在一起,意味着我们只需要搞明白这个问题,我们就掌握了相关的知识。最近我就在学习计算机网络,我一直在琢磨怎么把计算机网络中那么多纷繁复杂的知识点一网打尽,我想着或许可以从这个问题入手——在浏览器的地址栏中输入url后按下回车,后面发生了什么?
我以前觉得这个问题挺土气的,现在回头再来看看这个问题,反倒觉得这个问题很奇妙,这种感觉的转变,我觉得是因为我回答这个问题的答案可能发生了点变化。
几个月前,我会这样回答这个问题:输入url按下回车,通过DNS域名服务器解析域名得到ip地址,然后客户端向目的ip服务器发送消息,服务器处理消息,生成响应HTML回传给客户端,客户端解析响应消息,渲染页面,OVER。
如果是现在,我可能会这样回答问题:输入url按下回车后,浏览器会去解析url地址,得到协议名称、Web服务器名、文件夹路径地址,然后浏览器根据这些信息生成http请求消息,请求消息包括请求行(请求方法,url)、消息头、消息体;为了得到目标服务器的ip地址,需要通过DNS(Domain Name Server)域名服务器去查询域名对应的ip地址,当然,这之前会通过各级缓存,包括浏览器缓存,hosts文件等。为了传输生成的http请求消息,我们需要委托操作系统协议栈,传输层的TCP协议会利用客户端与服务器端的三次握手建立可靠连接,将大块数据分割成以报文段为基本单位的网络包进行编号管理,网络层则会在上层网络包的基础上增加IP头部(网络地址)和MAC头部(物理地址),数据链路层会在网络包开头加上报头、起始帧分界符,在末尾增加检测错误的帧校验序列,然后我们利用网卡将网络包中的数字信息转换为光电信息,这些信息通过双绞线、集线器、交换机和路由器接入互联网、不断转发,被服务器主机的网卡接收,自下而上进行解包获得各层报头信息,服务器完成信息处理,生成响应报文——包含状态行(协议版本,状态码)、响应消息头、响应消息体,回传给客户端,最后四次挥手断开连接,完成了一次url发起的http请求,OVER。
两个回答的区别在于,我通过这个问题,串联起了更多和计算机网络的知识点,能够更好的像提问者展示我对计网的掌握程度,可能单就回答这个问题,我可以和提问者进行三分钟以上的交流。从url开始,我能串联起来的计网问题包括 ***url格式、HTTP协议(http版本,https区别,http请求消息格式,http请求方法,对称加密与非对称加密)、TCP/IP协议(TCP/UDP区别,滑动窗口机制,可靠性与拥塞避免机制,IP协议,ICMP协议,ARP协议,IP地址与子网掩码)、OSI七层模型***等。
随着后面不断的学习,我的回答答案还会不断发生变化,所以这真是个有意思的问题,学习计算机网络还是得从url说起。
标签:http,请求,url,说起,计网,消息,服务器,客户端 来源: https://blog.csdn.net/qq_31994231/article/details/110350809