今天我们来聊一下为什么在手机上或者电脑上,只要在浏览器中输入网址,就能显示出一个网页出来。下面我们来看看,当我们在浏览器的网址栏输入一个url,然后敲回车后到底发生了什么。

BS架构

首先我们需要了解Web开发中的Browser/Server模式,简称BS架构,这种架构需要两个条件,一个是用户的设备上装有浏览器,另一个是把浏览器要显示的资源存储在服务器上。

上图中,用户在浏览器输入一个URL地址并敲回车,浏览器会发送HTTP请求到服务器,服务器收到请求后,返回相应的资源给浏览器,浏览器解析收到的资源,并展示给用户。

服务器不仅仅可以返回一个网页,而且可以返回任何网络资源,常见的有:html、asp、jsp、图片、声音、视频,css、js、zip、exe、apk等。

既然浏览器与服务器之间的通讯用的是HTTP,那么下面我们来了解一下HTTP协议。

HTTP协议

无规矩不成方圆,我们可以把协议理解成一种约定,一种规则,两台计算机要想正常地通讯,就要遵循一定的规则,否则你说方言,我说普通话,我们之间就没法沟通。HTTP是HyperText Transfer Protocol的英文缩写,中文翻译为超文本传输协议,我们在开发中经常讲的短连接指的就是HTTP,它使用TCP/IP协议来在浏览器和服务器之间传输数据。

一个HTTP请求分为请求行、请求头部、空行、请求数据四个部分组成,具体结构如下图:

请求方法

请求头部

Range:是在HTTP/1.1里新增的一个头部字段,以字节为单位,是现在众多号称多线程下载工具(如 FlashGet、迅雷等)实现多线程下载的核心所在。

bytes = 0-499 从0到499的500个字节
bytes = 500-999 从500到999的二个500字节
bytes = 500- 从500开始到以后的所有字节
bytes = -500 最后500个字节
bytes = 500-599,1000-1999 同时指定多个范围

未完待续。。。