Request 报文格式
请求行,请求头,空行,请求正文
HTTP的参数
HTTP使用GET/POST等方法不影响参数存放的位置,本文首先来介绍有几种放HTTP参数的方式。
1.URL里放参数
在URL里放参数最简单,就是问号+键值对,它存在于HTTP的Header中第一行
POST /psas/bug/image/confirm?param1=1¶m2=b HTTP/1.1
2.Body里放参数
由于URL里放参数是放在HTTP报文头,而往Body里放参数的方式就有很多种了,如何让接收端识别这些放参数的方法,就靠Content-type类型。
Body参数方式 | Content-type |
---|---|
Form | application/x-www-form-urlencoded |
JSON | application/json |
File | 不确定 |
Text | text/plain |
Multipart | multipart/form-data; boundary=X_PAW_BOUNDARY |
通常前端通过POST请求传递参数时,如果指定content-type 为application/x-www-form时,在springboot等框架搭建的后端可以使用对象自动接收;如果指定contend-type为application/json类型,后端使用类对象接收时必须加上@RequestBody注解才能生效
参数的获取
getParameter和getAttribute区别
getParameter()获取的是客户端设置的数据(POST或则GET方法传递)。 (客户端与服务端交互)
getAttribute()获取的是服务器设置的数据。 (服务器端数据的传递)
getParameter()永远返回字符串
getAttribute()返回值是任意类型
getParameter和getHeader区别
getHeader获得HTTP头信息 (通常由浏览器本身的信息)
getParameter获得表单参数值 (用户设定的信息)
开发者模式下浏览器分析
Header
- 请求报文Header(本地浏览器)
参数名 | 含义 |
---|---|
Host | 请求资源所在的服务器或则域名 |
User-Agent | 浏览器端浏览器型号和版本 |
Accept | 可接收处理的内容类型 |
Accept-Language | 语言 |
Accept-Encoding | 可接受的压缩类型 gzip,deflate |
Accept-Charset | 可接受的内容编码 UTF-8,* |
refer | 指示当前请求是从哪里链接过来(发送该请求的页面地址 ) |
cookie | 通过Cookie字段通知服务端当前页面的域生效中的cookie |
- 响应报文Header (Web服务器端)
参数名 | 含义 |
---|---|
Date | 服务器端时间 |
Server | Http 服务器端安装信息 |
Etag | 文件标识符 |
Content-Encoding | 实体主体的编码格式 |
Content-Length | 内容长度 |
Content-Type | 实体主体的类型 json… |
locationl | 通知浏览器需要重定向的页面 |
set-cookies | 通知客户端需要保存如下cookie |
- 响应码
状态 | 含义 |
---|---|
200 | 服务器已成功处理了请求并提供了请求的网页 |
202 | 已经接受请求,但处理尚未完成。 |
206 | 断点续传 |
301 | 永久性重定向 |
302 | 临时性重定向 |
404 | 服务器上不存在客户机所请求的资源 |