图解HTTP(一)

转自微信公众号码农code之路

一、当我们在浏览器的地址栏中输入URL后,web页面是如何呈现的?后面到底发生了什么?

在说明原因之前,有必要先了解下什么是B/S架构:

B/S结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。B/S结构是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server同数据库进行数据交互。 这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

web不是凭空显示出来的。根据web浏览器地址栏中指定的URL,web浏览器从web服务器获取文件资源(resource)等信息,从而显示出web页面。这也是一次客户端请求---服务器响应的过程。

像这种通过发送请求获取服务器资源的web浏览器等,都可以称为客户端(client)。

web使用一种名为HTTP(HyperText Transfer Protocol,超文本传输协议)的协议作为规范,完成从客户端到服务器等一系列运作流程。可以说,web是建立在HTTP协议上通讯的。

HTTP的诞生,这个就省略了,感兴趣可以去查看相关资料。

二、网络基础TCP/IP

为了理解HTTP,我们有必要事先了解一下TCP/IP协议族。

计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标,由哪一边先发起通信、使用哪种语言进行通过信、怎样结束通信等规划都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规划。而我们就把这种规划则称为协议(protocol)。

TCP/IP是互联网相关的各种协议族的总称:HTTP、FTP、SNMP、ICMP、IP、PPPoE、DNS等。

TCP/IP协议族按层次分为4层:应用层、传输层、网络层和数据链路层。

①应用层:决定了向用户提供应用服务时通信的活动。HTTP、FTP、DNS处于该层。

②传输层:对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。TCP和UDP处于该层。

③网络层:用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方计算机,并把数据包传送给对方。

④链路层:用来处理连接网络的硬件部分。

TCP/IP通信传输流

我们用HTTP举例来说明,首先作为发送端的客户端在应用层(HTTP协议)发出一个想看某个web页面的HTTP请求。

接着,为了传输方便,在传输层(TCP协议),把从应用层处接收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。

在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。到此,发往网络的通信请求就准备齐全了。

接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。

TCP协议采用了三次握手策略:发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个ACK标志的数据包,代表“握手”结束。

TCP三次握手

负责域名解析的DNS服务:

DNS服务

各种协议与HTTP协议的关系:

URI和URL:

①URI:统一资源标识符。

②URL:统一资源定位符。

URI用字符串标识某一互联网资源,而URL标识资源的地点(互联网上所处的位置)。可见URL是URI的子集。

URI格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值