Servlet: HTTP协议
1 HTTP协议的概念
<1> HTTP协议(HyperText Transfer Protocol,超文本传输协议)是由W3C(万维网联盟)组织制定 的一种应用层协议,是用来规范浏览器与Web服务器之间如何通讯的数据格式,主要涉及浏览器 的发请求格式和服务器的响应格式。
<2> HTTP协议通常承载于TCP协议之上,而承载于TLS或SSL协议层之上的协议就是常说的HTTPS协议
<3> HTTP默认的端口号为80,HTTPS默认的端口号为443
2 HTTP请求格式
<1> 客户端发送一个HTTP请求到服务器的请求消息,主要包括:
请求行、请求头、空白行和请求体
1.请求行 - 用来说明请求类型和要访问的资源以及所使用的HTTP版本,格式如下:
请求类型 请求的路径 协议的版本(1.1)
2.请求头是紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息,
格式(key:value)如下:
主机 请求长度 请求的浏览器相关信息
3.空白行就是请求头部的空行,即使后面的请求数据为空则必须有空行
4.请求体也叫请求数据,可以添加任意的其他数据。
<2> 举例如下:
POST /task01_demo01/demo1.html HTTP/1.1 Host: localhost:8088 Content-Length: 21 Cache-Control: max-age=0 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) name=scott&pwd=123456
3 HTTP响应格式
<1> 通常情况下服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息,主要包括:
响应行、响应头、空白行和响应体。
响应行用来说明HTTP协议版本号和状态码以及状态消息,格式如下:
协议的版本(1.0 1.1) 状态码 (200 成功 404 路径错误 500 服务错误) 状态信息
响应头用来说明客户端要使用的一些附加信息,格式(key:value)。
空白行就是响应头部的空行,即使后面的请求数据为空则必须有空行。
响应体用来服务器返回给客户端的文本信息。
<2> 举例如下:
HTTP/1.1 200 OK Content-Type: text/html Content-Length: 588 Date: Thu, 08 Sep 2021 12:59:54 GMT <html><head><title>示例1</title></head> <body><h1>这是一个HTML页面</h1></body> </html>