http协议和session会话
1.http协议:(超文本传输协议)
(1)请求和相应:
传输过程中:请求包含三个部分:
请求行:协议的版本(http1.1)请求的方式(post get) 请求url
请求头:告诉服务器关于浏览器的一些信息
请求体:分为三种情况:
get方式:没有请求体,有个queryString
post方法:有请求体:form data
json方式:有请求体,request payload
响应的组成类似:
响应行:协议版本(http1.1) 响应状态(ok) 响应编码(200)
响应头:服务器的一些信息,内容的一些信息(内容媒体类型,编码,内容长度)
响应体:响应的实际内容,比如请求的是add.html时响应体为该文件的代码;
(2)http是无状态的:
服务器无法判断两次请求是否为两个不同的客户端发来的,为解决这个问题,引入了会话跟踪技术
对于一次请求,service方法中会调用request的getSession方法来确定该客户端是否是第一次发送请求,若为第一次,则分配一个sessionid号,若不为第一次,则该方法会获取到该客户端的sessionid;
HttpSession session = request.getSession();
同时,session对象有一个getId方法,可以获取到id号
2.会话跟踪技术:
常用api:
request.getSession()获取会话对象,没有创建新的
request.getSession(true) 效果与上一个相同
request.getSession(false) 获取会话,如果没有返回null,不会创建新的
session.getId()获取会话id
session.isNew()判断是否为新的
session.getMaxInactiveInterval()获取session会话保质期 默认半小时
session.setMaxInactiveInterval()
session.invalidate()强制失效
3.session保存作用域:
常用api:
void session.setAttribute(k, v)
Object session.getAttribute(k)
void session.removeAttribute(k)