《图解HTTP》— Web网络基础

1,698 阅读3分钟

​ 我们一般通过URL来访问一个网站,那么当浏览器在我们输入URL之后到底发生了什么,网站页面是怎么呈现的?

​ 其实我们访问的网站都是具体在某个服务器上的文件资源 ( resource )。当我们输入URL的时候,实际上我们是作为客户端 ( client ) 发出了请求。这种请求就是HTTP 协议。超文本传输协议(约定俗成,实际上是超文本转移)。服务器根据请求返回指定信息。HTTP版本从0.9~2.0,当前主流的是1.0和1.1 。

网络基础TCP/IP

​ 其实,我觉得这些协议本质上都是为了解决通信问题而存在的。TCP/IP是各类协议的总称。协议中存在各式各样的内容。

​ TCP/IP协议族结构:应用层、传输层、网络层、链路层。

  • 应用层,决定了向用户提供服务通信的活动。FTP 、 DNS、 HTTP也属于这一层。
  • 传输层,顾名思义,提供网络链接中的两台计算机的数据传输。 TCP 、UDP
  • 网络层,处理网络上流动的数据包(最小的单位)。规定了传输路线到达目的计算机。
  • 链路层,处理硬件链接网络的部分。

​ 当客户端发送HTTP请求,这时候是处于应用层的,在传输层,进行对数据的分割,所以它出来的是IP数据包,并且在分割好的报文上进行标记序号和端口号,然后继续往下走。网络层理给报文装上了目的地,一般是MAC地址,cs专业的都知道,mac地址是唯一的。那么到网络层,数据信息就像打上钢印的猪肉一样,具有所在地和所要销往之处了。服务器就是一层层的逆向操作。这样就可以接收到数据了。

IP、TCP、DNS

IP协议

​ 看到上面的图,就知道IP协议属于网络层。这里的IP 是协议,不是我们常说的IP地址。IP协议的作用是把各种数据包送到目的地。需要准确的送到某个目的地。需要的是IP地址和MAC地址,IP可变换MAC地址不变,ARP 可以根据IP地址查出MAC地址。因为MAC地址是唯一的,那么为什么还需要IP地址呢?看到了下图就明白了。

因为实际上网络环境很复杂,不像是在局域网里。路由器可以进行中转操作。

TCP可靠的协议

​ 传输层的TCP协议。传输层把报文分割,可靠性主要体现在闭着眼睛都要考察的三次握手策略。如图所示,如果这个过程没有完成,则客户端再次发送。

DNS

​ DNS(Domain Name System )也是在应用层。提供域名到IP解析作用。所以现在应该明白了吧,我们输入到域名原来是通过DNS解析成IP。

各种协议和HTTP关系

看着图能够把各个层,理解清楚。整个网络发生的过程就很明了了。

URI 和URL

​ URI 记得以前念书的时候老师专门强调过这个,统一资源标识符。URI就是某个协议方案表示的资源定位的标识符。http or ftp 只是一种定位资源的方式,而非具体的定位位置。

​ URL 可以理解资源在网络上的位置。

​ 此图为绝对的URI格式

如若有错误之处,看官多多指正,随手点个赞呗,亲。另外我的微信公众号也会慢慢发布前端的东西,希望学习前端的小伙伴可以关注一波moomoocode.