#解读《图解HTTP》
##一、了解Web及网络基础
使用HTTP协议访问Web
web使用HTTP协议作为规范,完成客户端到服务器等一系列运作流程,因此,Web是建立在HTTP协议上通信的。
HTTP的诞生
HTTP协议诞生于1989年3月。
HTTP/1.0在1996年5月正式作为标准被公布。
HTTP/1.1在1997年1月被公布,用作当今主流的HTTP协议版本。
最初设想的基本理念:借助多文档之间的相互关联形成的超文本,连成可相互参阅的WWW(万维网)。
WWW构建技术:
1:把SGML作为页面文本标记语言的HTML
2:作为文档传递协议的HTTP
3:指定文档所在地的URL
网络基础:TCP/IP协议族
通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的,HTTP属于其内部的一个子集。
TCP/IP的分层管理
TCP/IP协议族层次区分:
1:应用层决定了向用户提供应用服务时通信的活动,预存的服务如FTP和DNS等,HTTP协议属于该层。
2:传输层对上层应用层提供处于网络连接中的两台计算机之间的数据传输,包括TCP和UDP协议。
3:网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位,该层规定通过怎样的路径到达对方计算机并把数据包传输给对方(选择最佳路径)。
4:数据链路层用来处理连接网络的硬件部分,包括控制操作系统、硬件的设备驱动、光纤等物理可见部分。
通信传输举例
1:客户端在应用层(HTTP协议)发出一个想看某个Web页面的HTTP请求。
2:在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号转发给网络层。
3:在网络层(IP协议)增加作为通信目的地的MAC地址后转发给链路层。
4:接收端的服务器在链路层接收到数据,按序往上层发送,当传输到应用层才算真正接收到由客户端发送来的HTTP请求。
负责域名解析的DNS服务
DNS服务位于应用层,提供域名到IP地址之间的解析服务。
确保可靠性的TCP协议
TCP协议位于传输层,提供可靠的字节流服务(为了方便传输,将大块的数据分割成以报文段为单位的数据包进行管理),采用三次握手策略把数据准确可靠地传送给对方。
负责传输的IP协议
IP网际协议位于网络层,几乎所有使用网络的系统都会用到IP协议,其作用是根据IP地址(指节点被分配到的地址)和MAC地址(指网卡所属的固定地址)把各种数据包传送给对方。
IP地址可与MAC地址配对,IP地址根据网络环境可变,MAC地址不会变。
在网络上,通信双方通常会经过多台计算机和网络设备中转才能连接到对方,在进行中转时会利用下一站中转设备的MAC地址来搜索下一个中转目标,这时会采用ARP协议(用以解析地址的协议,根据通信双方的IP可以反查出对应的MAC地址)。
综合图解:各协议的作用
URI和URL
URI:统一资源标示符,用字符串标识某以互联网资源。
URL:统一资源定位符,标识资源的地址。
可见URL是URI的子集。
图解绝对URI格式
##二、简单的HTTP协议
明确客户端和服务端
就某一条通信线路来讲,HTTP协议能够区分客户端和服务端的角色。
通过请求和响应的交换达成通信
请求报文的构成:
1:请求方法
2:请求URI
3:协议版本
4:可选的请求首部字段
5:内容实体
响应报文的构成:
1:协议版本
2: