应用层----HTTP概况
Web的应用层协议是超文本传输协议(HyperText Transfer
Protocol,HTTP)。HTTP由一个客户程序和一个服务器程序组成,两者通过交换报文进行会话。HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式。使用TCP作为它的支撑运输协议
(简单说就是我和你通过寄快递的方式相互送对方一样东西,则HTTP规定了寄快递时的注意事项,例如怎么填写地址、联系方式等)
多数Web页面由一个HTML基本文件加n个引用对象组成,HTML基本文件通过对象的URL地址引用页面的其他对象。
无状态协议:假设客户再几秒内多次请求同一对象,服务器不会因为刚刚为客户提供了对象而不作出反应,而是重新发送对象,就像忘记了不久前做过的事,每一次请求都会建立一个TCP连接,传输完成后释放
当客户发起对服务器的请求时,会建立一个TCP连接(可以理解为客户和服务器之间建立了一个TCP管道,用来运输东西)
非持续连接:每一个请求/响应对经过一个单独的TCP传输
持续连接:所有的请求/响应对经同一个TCP传输
使用非持续连接的HTTP:
假设客户向服务器请求一个包含1个HTML基本文件和5个JPEG图形,HTML文件的URL为:http://www.school.edu/someDepartment/home.index
报文格式
步骤一:客户进程(还记得通信双方为客户进程和服务器进程吗)在端口号80发起一个到服务器http://www.school.edu的TCP连接。端口号80是HTTP的默认端口,客户和服务器一个套接字与关联,此处涉及一次三次握手过程
步骤二:客户经套接字服务器发送一个HTTP请求报文
步骤三:服务器经套接字接受到了请求报文,并在其存储器中检索出对象someDepartment/home.index,在一个HTTP响应报文中封装该对象,经套接字发送响应报文
完成上述步骤,当客户接收响应报文后,服务器进程通知TCP断开连接,然后对每个JPEG对象重复前面的步骤。