文章目录
第1章 了解Web及网络基础
1.1 使用 HTTP 协议访问 Web
-
客户端:通过发送请求获取服务器资源的Web服务器等
-
HTTP(HyperText Transfer Protocol):超文本传输协议
-
Web是建立在HTTP协议上通信的
1.2 HTTP的诞生
- 3项WWW构建技术
- 把SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文本标记语言的HTML(HyperText Markup Language,超文本标记语言)
- 作为文档传递协议的HTTP
- 指定文档所在地址的URL(Uniform Resource Locator)
1.3 网络基础 TCP/IP
TCP/IP协议族
协议:不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。这种规则称为协议
TCP/IP:把互联网相关联的协议集合起来总称为TCP/IP
通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运行的,HTTP属于其内部的一个子集
TCP/IP协议分层(四层网络协议)
应用层、传输层、网络层和数据链路层
-
应用层
向用户提供应用服务时通信的活动
例如:HTTP,FTP,DNS
-
传输层
提供处于网络连接中的两台计算机之间的数据传输
网络协议:TCP(Transmission Control Protocol),传输控制协议和UDP(User Data Protocol),用户数据协议
-
网络层(网络互连层)
用来处理网络上流通的数据包,数据包是网络传输的最小数据单元
该层规定了通过怎样的路径(传输路线)到达对方计算机,并把数据包传送给对方
与对方计算机之间通过多台计算机或者网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输线路
-
链路层(数据链路层,网络接口层)
用来处理连接网络的硬件部分
TCP/IP 通信传输流
步骤流程:
- 发送端的客户端在应用层(HTTP协议)发出一个HTTP请求
- 为传输方便,在传输层(TCP协议)把应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层
- 在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层
- 接收端的服务器在链路层接受到数据,按顺序往上层发送,一直到应用层,当传输到应用层,才能算真正接受到由客户端发送过来的HTTP请求
封装(encapsulate):把数据信息包装起来的做法
1.4 与 HTTP 关系密切的协议 : IP、TCP 和DNS
负责传输的IP协议
IP(Internet Protocol)协议位于网络层
作用:把各种数据包传送给对方
确保数据包传送到对方的两个重要条件:IP地址和MAC地址(Media Access Control Address)
IP地址 | MAC地址 | |
---|---|---|
作用 | 指明了节点被分配到的地址 | 网卡所属的固定地址 |
可变性 | 地址可变 | 地址基本不变 |
使用ARP协议凭借MAC地址进行通信
ARP协议是一种用以解析地址的协议
根据通信方的IP地址就可以反查出对应的MAC地址
确保可靠性的TCP协议
字节流服务(Byte Stream Service):为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。
TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方
确保数据能到达目标:TCP协议采用三次握手(three-way handshaking)策略
1.5 负责域名解析的DNS服务
DNS(Domain Name System)服务位于应用层
提供域名到IP地址之间的解析服务
1.6 各种协议与 HTTP 协议的关系
1.7 URI和URl
URI 统一资源识别符
URI(Uniform Resource Identifier)统一资源标识符
-
Uniform:规定统一的格式可方便处理多种不同类型的资源
-
Resource:“可标识的任何东西”
-
Identifier:可标识的对象,也称为标识符
综上所述,URI 就是由某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称。
采用 HTTP 协议时,协议方案就是 http。除此之外,还有 ftp、mailto、telnet、file 等。标准的 URI 协议方案有 30 种左右。
URI用字符串标识某一互联网资源,URL表示资源的地点(互联网上所处的位置)
几种常见的URI的例子
ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.ietf.org/rfc/rfc2396.txt
ldap://[2001:db8::7]/c=GB?objectClass?one
mailto:John.Doe@example.com
news:comp.infosystems.www.servers.unix
tel:+1-816-555-1212
telnet://192.0.2.16:80/
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
URL格式
绝对URI的格式
-
协议方案名
使用 http: 或 https: 等协议方案名获取访问资源时要指定协议类型。不区分字母大小写,最后附一个冒号(:)
-
登陆信息(认证)
指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证)。此项是可选项。
-
服务器地址
使用绝对 URI 必须指定待访问的服务器地址。
地址可以是域名也可以是IPv4或IPv6地址名
-
服务器端口
指定服务器连接的网络端口号。此项也是可选项,若用户省略则自动使用默认端口号。
-
带层次的文件路径
指定服务器上的文件路径来定位特指的资源。
-
片段标识符
使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个
位置),该项也可选项。
IPv6地址名
-
服务器端口
指定服务器连接的网络端口号。此项也是可选项,若用户省略则自动使用默认端口号。
-
带层次的文件路径
指定服务器上的文件路径来定位特指的资源。
-
片段标识符
使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个
位置),该项也可选项。