文章目录
1、HTTP协议简介
HTTP(HyperText Transfer Protocol)协议,超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。它位于OSI五层协议体系结构中的最上层,属于应用层协议。它定义了应用进程减通信和交互的规则。
1、URL简介
同一资源定位符URL用来表示从因特网上得到资源的位置和访问这些资源的方法。这里所说的资源是指因特网上能够被访问的任何对象,包括文件目录、文件、文档、图片等等。URL的的一般形式如下:
<协议>:// <主机>:<端口>/<路径>
这里的协议就是指出了用什么协议来获取万维网文档,可以是http协议,也可以是ftp协议。主机指出了需要访问的资源文档位于万维网上的哪个主机,就是域名。端口就是通过DNS服务器解析出来的ip定位到主机后需要指定的进程号,http默认端口为80端口。路径就喜欢ixuyao访问的资源在服务器中的路径位置。
URI(同一资源标识符),它包含了URL,也就是说一个URL是一个URI,但是一个URI不一定是一个URL,URI中还有一个子集称为URN,它只命名资源而不定位资源。
3、HTTP请求过程
HTTP协议定义了客户端怎样向万维网服务器发送请求以及服务器如何响应客户端的方式。从层次的角度上来讲,HTTP是面向事务的(transaction-oriented)应用层协议,它是万维网可靠交换文件的基础。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。我们来看看HTTP是怎样发送请求并接收文件的:
1、客户端请求连接到服务器: 每个万维网都有一个服务器进程,这个进程一直监听TCP的80端口,来发现是否有客户端向他发起请求。当发现有向他发起建立连接的请求,就建立起一个套接字TCP连接。
2、发送HTTP请求: 当建立起TCP连接后,客户端就通过套接字向服务器发送一个请求报文,这个报文包含了请求行、请求头、空行和请求数据4部分。
3、服务器接收请求并返回响应: 服务器首先解析客户端发送的报文然后定位到需要的资源,通过套接字将响应报文发送给客户端。同理一个响应也由状态行、响应头部、空行和响应数据4部分组成。
4、释放TCP连接: 如果请求头中connection字段为close则服务器立即关闭TCP连接,如果为keep-alive,则连接会持续一段时间后关闭。
5、客户端解析资源: 客户端会首先解析状态行,如果状态行成功,则解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。
我们接下