文章目录
- 一、HTTP简介
- 二、请求报文
- 三、请求方式
- 四、媒体类型
- 五、响应报文
一、HTTP简介
HTTP:Hyper Text Transfer Protocol 超文本传输协议。HTTP最大的作用就是确定了请求和响应数据的格式。浏览器发送给服务器的数据:请求报文;服务器返回给浏览器的数据:响应报文。
二、请求报文
1、请求报文的三个部分
2、请求行
作用:展示当前请求的最基本信息。
POST /dynamic/target.jsp HTTP/1.1
- 请求方式
- 访问地址
- HTTP协议的版本
3、请求消息头
作用:通过具体的参数对本次请求进行详细的说明。
格式:键值对,键和值之间使用冒号隔开。
一些比较重要的请求消息头:
4、请求体
作用:作为请求的主体,发送数据给服务器。具体来说其实就是POST请求方式下的请求参数。
格式:
[1]form data
含义:当前请求体是一个表单提交的请求参数。
查看源码后,发现格式如下:
username=tom&password=123456
- 每一组请求参数是一个键值对
- 键和值中间是等号
- 键值对之间是&号
[2]Request Payload
含义:整个请求体以某种特定格式来组织数据,例如JSON格式。
三、请求方式
1、HTTP协议已定义的请求方式
HTTP1.1中共定义了八种请求方式:
- GET:从服务器端获取数据
- POST:将数据保存到服务器端
- PUT:命令服务器对数据执行更新
- DELETE:命令服务器删除数据
- HEAD
- CONNECT
- OPTIONS
- TRACE
2、GET请求
特征1:没有请求体。
特征2:请求参数附着在URL地址后面。
特征3:请求参数在浏览器地址栏能够直接被看到,存在安全隐患。
特征4:在URL地址后面携带请求参数,数据容量非常有限。如果数据量大,那么超出容量的数据会丢失。
特征5:从报文角度分析,请求参数是在请求行中携带的,因为访问地址在请求行。
3、POST请求
特征1:有请求体。
特征2:请求参数放在请求体中。
特征3:请求体发送数据的空间没有限制。
特征4:可以发送各种不同类型的数据。
特征5:从报文角度分析,请求参数是在请求体中携带的。
特征6:由于请求参数是放在请求体中,所以浏览器地址栏看不到。
四、媒体类型
1、HTTP协议中的MIME类型
Multipurpose Internet Mail Extensions
2、用途
为了让用户通过浏览器和服务器端交互的过程中有更好、更丰富的体验,HTTP协议需要支持丰富的数据类型。
3、MIME类型定义参考
我们可以通过查看Tomcat解压目录下conf/web.xml配置文件,了解HTTP协议中定义的MIME类型。
<mime-mapping><extension>mp4</extension><mime-type>video/mp4</mime-type>
</mime-mapping>
<mime-mapping><extension>doc</extension><mime-type>application/msword</mime-type>
</mime-mapping>
<mime-mapping><extension>json</extension><mime-type>application/json</mime-type>
</mime-mapping>
<mime-mapping><extension>html</extension><mime-type>text/html</mime-type>
</mime-mapping>
从上面的例子中可以看出:MIME的基本格式是
大类/具体类型
MIME类型在HTTP报文中对应的是内容类型:Content-type。
五、响应报文
1、响应状态行
HTTP/1.1 200 OK
- HTTP协议版本
- 响应状态码
- 响应状态的说明文字
2、响应消息头
- 响应体的说明书
- 服务器端对浏览器端设置数据,例如:服务器端返回Cookie信息
3、响应体
服务器返回的数据主体,有可能是各种数据类型。
- HTML页面
- 图片
- 视频
- 以下载形式返回的文件
- CSS文件
- JavaScript文件
4、响应状态码
作用:以编码的形式告诉浏览器当前请求处理的结果。
404产生的具体原因:
①访问地址写错了,确实是没有这个资源。
②访问了WEB-INF目录下的资源。
③Web应用启动的时候,控制台已经抛出异常,导致整个Web应用不可用。
④服务器端缓存。