1、HTTP简介
HTTP(hypertext transfer protocol,超文本传输协议),是HTML文档的网络传输协议,该协议规定了WEB的基本运作过程,以及浏览器与web服务器之间的通信细节。
作用:规范了浏览器和服务器数据交互的格式。
HTTP协议特点:
(1)端口号:在分层网络体系结构中,HTTP位于应用层,建立在TCP/IP协议基础上,默认端口号为80。
(2)HTTP协议是无连接的:Http使用了面向连接的TCP协议作为运输层协议,保证了数据的传输可靠。但是HTTP协议是无连接的,即通信双方在交换HTTP报文之前不需要建立HTTP连接。
(3)HTTP协议是无状态的:同一个客户第一次访问同一个服务器上的界面时,服务器的响应与第一次被访问时相同。
2、HTTP通信过程
客户端与服务端进行一次信息交换,包括以下四个部分:
- 客户端与服务端建立TCP连接(浏览器输入网址点击回车)
- 客服端发出HTTP请求
- 服务端发出HTTP响应
- 客户端与服务端之间关闭TCP连接(HTTP1.1后不会立即关闭)
3、HTTP报文结构
HTTP有两类报文:请求报文和响应报文。
- 请求报文:从客户端向服务器发送请求报文。
- 响应报文:从服务器到客户端的回答。
报文的每个字段都为ASCII码,HTTP的请求报文和响应报文都是由三部分组成的,由开始行、首部行和实体主体组成。
- 开始行用于区分是请求报文还是响应报文,请求报文的开始行叫做请求行,响应报文的开始行叫做状态行。
- 首部行:用于说明浏览器、服务器或报文主体的一些信息。
- 实体主体
(1)请求行格式的结构
- 请求头:请求方式、请求的地址和HTTP协议版本。
- 请求行:消息报头。一般用来说明客户端要使用的一些附加信息。
- 空行:位于请求行和请求数据之间。空行是必须的。
- 请求数据:非必须。
HTTP请求可以利用HTTP标准中定义的其中一个请求方法。请求方式共有8种:GET、POST、HEAD等。GET和POST是最常用的。
请求实例:
第一行:请求方法/URI/协议版本号
最后一行:请求主体
(2)响应行格式的结构
- 响应行:HTTP版本、状态码、状态消息
- 响应头:消息报头、客户端使用的附加信息。
- 空行:响应头和响应实体之间,必须添加。
- 响应实体:正文,服务器返回给浏览器的信息。
状态码:
响应实例: