Java Web学习--HTTP协议
Java Web学习--HTTP协议
HTTP协议的简单介绍
HTTP:Hyper Text Transfer Protocol超文本传输协议。
HTTP是请求数据和响应数据的一种格式.
浏览器发送给服务器的数据:请求报文;服务器返回给浏览器的数据:响应报文。
http是无状态的
请求报文
**1.请求行 **
- 请求的方式
- 请求的URL
- 请求的协议(一般都是HTTP1.1)
**2.请求消息头 **
- 请求消息头中包含了很多客户端需要告诉服务器的信息,比如:我的浏览器型号、版本、我能接收的内容的类型、我给你发的内容的类型、内容的长度等等
3.请求主体
- 请求体,三种情况
- get方式,没有请求体,但是有一个queryString
- post方式,有请求体,form data(表单)
- json格式,有请求体,request payload
响应报文
1.响应状态行
- HTTP协议版本
- 响应状态码
- 响应状态的说明文字
2.响应头
- 包含了服务器的信息;服务器发送给浏览器的信息(内容的媒体类型、编码、内容长度等)
3.响应体
-
响应体:响应的实际内容(比如请求add.html页面时,响应的内容就是
<html><head><body><form....
会话跟踪技术session
session是一种会话跟踪技术.
-
客户端第一次发请求给服务器,服务器获取session,获取不到,则创建新的,然后响应给客户端.
-
下次客户端给服务器发请求时,会把sessionID带给服务器,那么服务器就能获取到了,那么服务器就判断这一次请求和上次某次请求是同一个客户端,从而能够区分开客户端
常用的API:
注意这里的request继承的是httpServlet.
request.getSession() -> 获取当前的会话,没有则创建一个新的会话
request.getSession(true) -> 效果和不带参数相同
request.getSession(false) -> 获取当前会话,没有则返回null,不会创建新的
session.getId() -> 获取sessionID
session.isNew() -> 判断当前session是否是新的
session.getMaxInactiveInterval() -> session的非激活间隔时长,默认1800秒
session.setMaxInactiveInterval()->设置非激活时间间隔时长
session.invalidate() -> 强制性让会话立即失效
session保存作用域
session保存的作用域是和具体的某一个session对应的.只有懈怠同一个session才能访问到相同的内容.
常用API:
-
void session.setAttribute(k,v)是一个类似map的东西哦k代表是键,v代表是值,v的数据类型为Object
-
Object session.getAttribute(k) 获取以前保存的值并且返回
-
void removeAttribute(k) 从session删除指定名称的值也就是删除k对应的v