HTTP协议称为超文本传输协议,是客户端与服务器通信的一种标准。客户端和服务器都遵循HTTP协议,就能从彼此发送的信息中提取自己想要的数据
HTTP协议的特点
- HTTP协议遵循的是请求/响应模型
- HTTP协议是一种无状态的协议,当请求/响应完成以后,客户端和服务器连接会断开。所以服务器无法知道两次请求的用户是否为同一个用户
- HTTP协议占用80端口。
HTTP协议的工作流程
- 客户端和服务建立连接
- 客户端发送HTTP请求
- 服务器产生HTTP响应
- 关闭连接
HTTP协议的请求信息
请求行,请求头,空行,消息体
请求行:描述请求方式,请求URL路径,HTTP协议版本
请求头:以键值对方式描述客户端相关信息
空行:标识请求头的结束
消息体:(POST)描述客户端请求的表单数据
HTTP协议请求方式有8种:
GET
POST
HEAD
OPTIONS
PUT
DELETE
TRACE
CONNECT
其中GET,POST是最常用的两种。
GET请求:
- 浏览器输入URL路径为GET请求
- 用户提交表单,默认为GET请求,method属性为GRT时,也就是GRT请求
POST请求:
<form method=”post” action=”/land”>
GET和POST的区别
- 流格式的区别
GET 请求,只有请求行、请求头、空行。会将表单数据附加在 URL后面。
POST 请求,有请求行、请求头、空行、消息体。在消息体中附加表单数据。
- 传输性能的区别
GET请求,不能传输大数据,只能传输小文本数据
POST请求,可以传输大数据,同时可以传输文本数据及二进制数据
- 用户的区别
GET请求用于服务器资源查找。POST请求用于数据的传输
HTTP协议的响应信息
状态行,响应头,空行,消息体
状态行:描述HTTP协议版本,状态码,响应描述
响应头:以键值对方式描述服务器相关信息
空行:标识响应头的结束
消息体:服务器发送给客户端的具体数据
HTTP协议状态
http协议状态有5种:
100-199:表示客户端请求服务器在进行中。
200-299:表示客户端请求成功。
300-399:表示资源移走,请求新的地址
400-499:表示客户端引发的错误
500-599:表示服务器端引发的错误
MIME类型
MIME类型用于服务器端发送数据给客户端时,告诉客户端以声明格式来解析响应信息体内容
常见的MIME类型:
text/html:html网页数据
image/jpeg:JPG 图片数据
application/json:json格式数据
text/xml:xml 格式数据
传统的web服务器的缺陷:
传统的WEB 服务器在接收到客户端请求后,只能将静态的html信息发送给客户端,极大的影响了响应信息的灵活性。
解决方案是:在传统的WEB 服务器接收到客户端请求后,交由辅助应用进行处理。辅助应用可以利用数据库做为存储介质,将请求信息进行处理后,动态的产生响应信息。
java 利用WEB 容器+Servlet方式做为辅助应用解决方案的。