一,HTTP的历史
1,HTTP的概念
HTTP(HyperText Transfer Protocol,超文本传输协议)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端(如浏览器)
它是一个应用层的协议,承载于TCP之上
由请求和响应构成,是一个标准的客户端服务器模型
2,HTTP的发展历史
作为Web文档传输协议的HTTP,它的版本更新十分缓慢,目前只更新了四个版本:
HTTP/0.9
HTTP/1.0
HTTP/1.1
HTTP/2.0
3,HTTP在Web应用中的重要性
HTTP协议是整个Web基础,许多应用都离不开对HTTP协议的认识:
WebService=HTTP+XML
Reset=HTTP+JSON
API的实现:HTTP+XML/JSON
采集、小偷站
QQ、迅雷等桌面应用软件
二,网络基础TCP/IP协议
1,协议的概念
什么是协议?
协议是指计算机通信网络中,两台计算机进行通信,所必须遵循的规定或规则。
计算机网络中有各种各样的协议,比如TCP协议、IP协议、HTTP协议、FTP协议等等。像这样把与互联网相关联的协议集合起来,就称为TCP/IP协议族。
2,TCP/IP的分层管理
TCP/IP协议族最重要的一点就是分层。按层次分别分为以下4层:
应用层
应用层决定了向用户提供应用服务时通信的活动,负责处理特定的应用程序。
TCP/IP协议族内预存了各类通用的应用服务。比如FTP ( File Transfer Protocol )、DNS ( Domain Name System ) 等等。
HTTP也在该层。
传输层
对上层应用层,提供处于网络连接中两台计算机之间的数据传输。
该层有两个不同的协议:TCP ( Transmission Control Protocol,传输控制协议 )和UDP ( User Data Protocol 用户数据报协议 )。
网络层
处理网络上流动的数据包。该层有协议有:IP、ICMP、IGMP。
数据链路层
处理连接网络的硬件部分。包括操作系统、硬件设备驱动、网卡、光纤等。
3,TCP/IP通信传输流程
发送端在层与层之间传输数据时,每经过一层必定会被打上该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层会把对应的首部消去。
这种把数据信息包装起来的做法称为封装。
把TCP/IP 层次化是有好处的。比如,如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。而分层之后只需把变动的层替换掉即可。把各层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动了。
值得一提的是,层次化之后,设计也变得相对简单了,处于应用层上的应用可以只考虑分派给自己的任务,而不需要弄清对方在地球上哪个地方,对方的传输路线是怎样的,是否能确保传输送达等问题。
三,IP、TCP和DNS与HTTP的密切关系
1,IP协议的概念与作用
IP的概念:
英文为Internet Protocol,翻译成网际协议,位于网络层。
IP的作用:
把各种数据包传送给对方。如果要保证确定传送到对方那里,则需要满足各类条件,其中最重要的两个条件是IP地址和MAC地址。
(1)IP地址:指明了节点被分配到的地址
(2)MAC地址:是指网卡所属的固定地址
(3)区别:IP地址可变换,但MAC地址基本上不会更改。
使用ARP协议凭借MAC地址进行通信:
什么是ARP?
ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。
2,TCP协议的概念与作用
TCP的概念:
英文为Transmission Control Protocol ,翻译成传输控制协议,位于传输层。
TCP的作用:
提供可靠的字节流服务。
3,TCP协议的三次握手过程
TCP如何才能保证提供可靠的服务?
采用了三次握手策略
4,DNS的概念与作用
DNS的概念:
英文为Domain Name System ,翻译成域名系统,位于应用层。
DNS的作用:
提供域名到IP地址之间的解析服务。
5,HTTP与TCP、IP和DNS的关系
用图来说明其关系:
四,URI和URL的概念
1,URI的概念
URI(Uniform Resource Identifier),翻译为统一资源标识符,是一个用于标识某
一互联网资源名称的字符串。
2,URL的概念
URL(Uniform Resource Location),翻译为统一资源定位符,它描述一台特定服
务器上某特定资源的特定位置。
3,URI与URL的关系
URI用字符串标识某一互联网资源,而URL表示资源的地点(资源所处的位置)由
此可见,URL是URI的子集。
URI由两个主要的子集 URL 和 URN构成。
4,URI的格式
格式:
http://user:pass@www.example.com:80/home/index.html?age=11#mask
http:协议方案名 (在获取资源时要指定协议类型)
user:pass:登录信息(认证) (指定用户名和密码作为从服务器端获取资源时必要的登录信息,此项是可选的。)
www.example.com:服务器地址 (使用绝对URI必须指定待访问的服务器地址。)
80:端口号 (指定服务器连接的网络端口号,此项是可选的。)
/hone/index.html:文件路径
age=11:查询字符串
mask:片段标识符