[关闭]
@DevWiki 2015-07-23T12:51:26.000000Z 字数 2309 阅读 1864

了解Web及网络基础

HTTP学习笔记


更多内容详见:HTTP学习笔记系列

使用HTTP协议访问Web

当我们在浏览器的地址栏输入URL之后,信息会被送到某处,然后从某处返回相应的内容,最后显示在浏览器上.

客户端

像这种通过发送请求获取服务资源的Web浏览器等,被称为客户端

Web使用一种名为HTTP的协议作为规范,完成从客户端到服务器端等一系列运作流程.

HTTP的诞生

HTTP/0.9

HTTP问世,但那是的HTTP存在多处的模糊不清,并没有被作为正式的标准被建立.

HTTP/1.0

1996年5月HTTP正式被作为标准,版本命名为HTTP/1.0,并记载于RFC1945.

HTTP/1.1

1997年1月公布的HTTP/1.1是目前主流的HTTP协议版本.当初的标准是RFC2068,之后发布的修订版RFC2616是当前的最新版.

网络基础TCP/IP

通常我们使用的网络是在TCP/IP协议族的基础上运作的,而HTTP属于它内部的一个子集.

TCP/IP协议族

计算机与网络设备要互相通信,双方就必须基于相同的方法.不同的硬件,操作系统之间的通信,所有的这一切都需要一种规则.而我们就把这种规则称为协议.

广义上讲:TCP/IP是互联网相关的各类协议族的总称,包括:TCP、IP、ICME、IEEE802.3、FDDI、HTTP、PPPoE、DNS、UDP、SNMP、FTP等.

侠义上讲:TCP/IP是指TCP和IP这两种协议.

TCP/IP的分层管理

TCP/IP协议族按层次分为以下4层:

  • 应用层
  • 传输层
  • 网络层
  • 数据链路层

应用层

应用层决定了向用户提供应用服务时通信的活动.

TCP/IP协议族内预存了各类通用的应用服务.比如:FTP(File Transfer Protocol,文件传输协议)、DNS(Domain Name System,域名系统)、HTTP(Hypertext Transfer Protocol,超文本传输协议)等;

传输层

传输层对应上层应用层,提供处于网络连接中的两台计算机之间的数据传输.

在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol,用户数据报协议).

网络层(网络互联层)

网络层用来处理在网络上流动的数据包.

数据包是网络传输的最小数据单位.该层规定了通过怎样的路径到达对方的计算机,并把数据包传给对方.

链路层(网络接口层)

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

硬件包括:控制操作系统,精简的设备驱动,NIC,及光纤等物理可见部分.

通信传输流

利用TCP/IP协议族进行通信时,通信传输流入下图所示:

通信传输流

以HTTP举例说明,客户端在应用层发出一个想看某个Web页面的HTTP请求.

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

通信传输流-详细

与HTTP关系密切的协议:IP,TCP和DNS

负责传输的IP协议

按层次分,IP网际协议位于网络层.

IP协议的作用是把各种数据包传给对方.而要确保传到对方哪里,则需要满足各类条件,其中两个重要的条件是IP地址和MAC地址.

IP地址指明了节点被分配到的地址,MAC地址是网卡所属的固定地址.IP地址可以变换,但MAC地址基本不可变.

IP间的通信依赖MAC地址.在网络上,通信双方在同一局域网内的情况很少,通常是经过多态计算机和网络设备中转才能连接到对方,中转时会采用ARP协议根据通信方的IP地址反查出对应的MAC地址.

中转过程如下:

通过IP中转

确保可靠的TCP协议

按层次分,TCP位于传输层,提供可靠的字节流服务.

所谓的字节流服务是指,为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理.

可靠的传输服务是指,能够把数据准确可靠地传给对方.

为了确保数据能准确地到达目标,TCP采用三次握手的策略,其过程如下图所示:

TCP三次握手

负责域名解析的DNS服务

DNS服务和HTTP协议一样位于应用层的协议.

DNS提供域名到IP之间的解析服务.

解析过程如下图:

DNS解析

各种协议与HTTP协议的关系

各种协议与HTTP的关系如下图所示:

协议关系图

URI和URL

统一资源标识符

URI是Uniform Resource Identifier的缩写,RFC2396的规定如下:

Uniform

规定统一的格式可方便处理多种不同类型的资源,而不用根据上下文环境来十倍资源指定的访问方式.

Resource

资源的定义是可标识的任何东西.

Identifier

表示可标示的对象.

综上可知:URI就是有某个协议方案表示的资源定位标识符.协议方案是指访问资源使用的协议类型名称.

标准的URI协议方案有30z种左右,其统一的资源标识符通用语法如下:

  1. ftp://ftp.is.co.za/rfc/rfc1808.txt
  2. http://www.ietf.org/rfc/rfc2396.txt
  3. ldap://[2001:db8::7]/c=GB?objectClass?one
  4. mailto:John.Doe@example.com
  5. news:comp.infosystems.www.servers.unix
  6. tel:+1-816-555-1212
  7. telnet://192.0.2.16:80/
  8. urn:oasis:names:specification:docbook:dtd:xml:4.1.2

URI格式

URI的格式如下:

URI格式

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注