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后不会立即关闭)

 

Java radous 协议 java中http协议_HTTP

 3、HTTP报文结构

HTTP有两类报文:请求报文和响应报文。

  • 请求报文:从客户端向服务器发送请求报文。
  • 响应报文:从服务器到客户端的回答。

Java radous 协议 java中http协议_Java radous 协议_02

报文的每个字段都为ASCII码,HTTP的请求报文和响应报文都是由三部分组成的,由开始行、首部行和实体主体组成。

  • 开始行用于区分是请求报文还是响应报文,请求报文的开始行叫做请求行,响应报文的开始行叫做状态行
  • 首部行:用于说明浏览器、服务器或报文主体的一些信息。
  • 实体主体

(1)请求行格式的结构

  • 请求头:请求方式、请求的地址和HTTP协议版本。
  • 请求行:消息报头。一般用来说明客户端要使用的一些附加信息。
  • 空行:位于请求行和请求数据之间。空行是必须的。
  • 请求数据:非必须。

 

HTTP请求可以利用HTTP标准中定义的其中一个请求方法。请求方式共有8种:GET、POST、HEAD等。GET和POST是最常用的。

Java radous 协议 java中http协议_请求报文_03

 请求实例:

Java radous 协议 java中http协议_客户端_04

 

Java radous 协议 java中http协议_请求报文_05

第一行:请求方法/URI/协议版本号 

最后一行:请求主体

(2)响应行格式的结构

  • 响应行:HTTP版本、状态码、状态消息
  • 响应头:消息报头、客户端使用的附加信息。
  • 空行:响应头和响应实体之间,必须添加。
  • 响应实体:正文,服务器返回给浏览器的信息。

状态码:

Java radous 协议 java中http协议_Java radous 协议_06

响应实例:

Java radous 协议 java中http协议_请求报文_07

Java radous 协议 java中http协议_HTTP_08