1.Web网络基础
通过发送请求获取服务器资源的Web浏览器等,称之为“客户端‘,Web使用称之为HTTP(超文本传输协议)作为规范,完成从客户端到服务端的运作流程。
我们通常所说的网络,实在TCP/IP协议族基础上运作的,HTTP属于它内部的一个子集。
与互联网相关联的协议集合起来总称为TCP/IP。
TCP/IP协议族按层次分为四层:应用层,传输层,网络层和数据链路层,这样的好处是可以分层改动设计而不需要整体替换。
应用层中包含各种通用的应用服务,比如FTP(文件传输协议),DNS(域名系统),HTTP等。
传输层是应用层的下层,提供处于网络连接中的两台计算机之间的数据传输,比如TCP(传输控制协议),UDP(用户数据报协议)等。
网络层用于处理在网络上流动的数据包,数据包是网络传输的最小数据单位,该层规定了传输路线。
链路层是用来处理连接网络的硬件部分,包括设备驱动,网卡,光纤等。
其中,与HTTP关系密切的协议有三个,分别是IP,TCP和DNS。
IP是网络层的协议,IP协议和IP地址是两个不同的概念。IP协议的作用是将数据包传送给对方,而要确保传送到对方那里,则需要IP地址和MAC地址。
IP地址指明了节点被分配到的地址,可以变换;MAC地址是网卡的固定地址,不可以变换。
通信双方往往要通过多台计算机网络设备中转才能连接到对方,中转时会利用下一站中转设备的MAC地址来搜索下一个中专目标,会使用解析地址的ARP协议。ARP协议通过通信方的IP地址可以反查MAC地址。
TCP协议位于传输层,作用是将数据进行分割并确保数据传输到对方,使用三次握手策略。
第一次握手:发送端发送一个带SYN标志的数据包给对方。
第二次握手:接收端回传一个带有SYN/ACK标志的数据包。
第三次握手:发送端回传一个带有ACK标志的数据包。
如果在握手过程中某个阶段终端,TCP协议会再次以相同的顺序发送相同的数据包。
DNS服务位于应用层,他提供域名到IP地址间的解析。
人更容易记住www.baidu.com这样的拼写域名,而计算机更容易记住127.0.0.1这样的IP地址。
DNS服务会使域名解析成IP或反查域名,方便通信。
从你在浏览器中输入一串域名到显示网页发生了什么?
URI(统一资源标识符)是指利用某种协议方案表示的资源定位标识符;URL(统一资源定位符)是他的子集,也就是访问的网页地址。
下图是URI的格式。
2.简单的HTTP协议
HTTP协议用于客户端和服务端的通信,它通过客户端发送请求报文,服务端返回响应报文完成通信。
HTTP不保存是谁发送了请求,和谁以前发送了什么请求。要实现请求的记录,利用在每次发送请求时附加Cookie实现。
HTTP1.1支持的HTTP方法主要有:
GET:请求获取资源。
POST:传输实体主体。
关于GET和POST的详细请看文章http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
PUT:传输文件。
HEAD:获得文件首部。
DELETE:请求删除文件。
OPTIONS:询问支持哪些HTTP方法。
TRACE:追踪路径。
CONNECT:要求用隧道协议链接代理。
3.报文内的HTTP信息
HTTP协议交互的信息称为HTTP报文,下图是HTTP报文的结构。
HTTP通过压缩传输的内容编码和分割发送的分块传输编码优化传输效率。
HTTP可以提通过多部分对象集合来在一个请求中传输不同类型的文件(比如视频和文本)。
HTTP可以通过范围请求来获取指定下载的数据范围(比如一个图片的一部分)。
HTTP可以通过内容协商返回最适合的内容(比如中文和英文浏览器返回不同语言的网页)。