作者:Yuki_沐1824355667 | 来源:互联网 | 2023-08-08 14:30
HTTPHTTP协议特点请求消息请求消息格式Request与Responserequest继承体系结构Request功能response继承体系结构响应消息格式HTTP协议特点
HTTP
- HTTP协议
- 特点
- 请求消息
- 请求消息格式
- Request与Response
- request继承体系结构
- Request功能
- response继承体系结构
- 响应消息格式
HTTP协议
特点
- 基于TCP/IP的高级协议
- 默认端口号:80
- 基于请求/响应模型 即一次请求对应一次响应
- 无状态的:每次请求之间相互独立,不能交互数据
请求消息
请求消息格式
- 请求行
请求方式、请求url、请求协议/版本
GET /abc/demo1 HTTP/1.1
- 请求头
请求头名称:请求头值
Host: localhost:8888
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36 Edg/86.0.622.56
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
COOKIE: Idea-efd34b6e=c9ab810a-fa9a-4b0d-897d-5e7640aa74b1
常见:
- Connection
- Referer 告知服务器当前请求从哪里来,也就是说,发出此请求的网址。
- 请求空行
空行
- 请求体(正文)
- 封装post请求信息的请求体的参数,get没有请求体。
Request与Response
- 由服务器自动生成(大部分服务器都支持Servlet服务),直接使用。
- tomcat服务器会根据请求url中的资源路径,创建对应的处理请求的Servlet对象。
- tomcat服务器,会创建response和request对象,request对象封装请求消息数据。
- tomcat将request和response两个对象传递给service方法。
- 通过service方法中操作request对象并设置响应的消息数据 封装在response中,
- 服务器将response中的响应消息放入到响应数据包返回给浏览器。
request继承体系结构
ServletRequest – 接口
| 继承
HttpServletRequest – 接口
| 实现
org.apache.catalina.connector.RequestFacade 类
Request功能
- 获取请求行消息数据
String getMethod()
String getcontextPath() 获取虚拟目录
String getservletPath() 获取servlet路径
String getQuerrystring() 获取get请求方式请求参数:name = 张三
String getRequestURI() 获取请求URI
String getRequestURL() 获取请求URL
String getProtocol() 获取请求协议及其版本
String getRemoteAddr() 获取客服机IP
- 获取请求头数据
String getHeader(String name ) 通过请求投的名称获取请求头的值
Enumeration getHeaderNames() 获取所有的请求头名称
- 获取请求体数据
只有post方法才有
步骤
- 获取流对象
> BufferReader getReader() 获取字符输入流
> SerevletInputStream getInputStream() 获取字节输入流
-
再从流对象中获取数据
-
其他功能
-
获取请求参数(无论post get都可以用)
String getParameter(String name) 根据参数获取参数值
. String getParameterValues(String name) 根据参数获取参数值 的数组 多用于复选框
Enumeration getParameterNames() 后去所有请求的参数名称
Map getParameterMap() 获取所有参数的map集合
-
请求转发
-
共享数据
-
获取ServletContext
response继承体系结构
响应消息格式
updating…