======================================================================
http协议的内容
规范了各种浏览器和服务器的通信标准。可以避免服务器解析不了浏览器传来的请求的问题
协议的特点:
(1)遵循请求响应模型 --------客户端发送请求之后,服务器必定给你响应
(2)http是无状态的协议--------客户端发送请求完了,接受响应完了,关闭连接 scoket。close
(3)http端口是80 ftp 21
(4)http属于应用层协议,应用层的数据封装在http里面进行传输的
http结构
(1)http请求
请求行:请求地址、请求方式、http版本
请求头:包含元数据(告诉服务器浏览器类型,客户端要接受的数据格式、压缩方式等等)
空行:将请求头和消息 体分割开
消息体:存放用户传输数据
(2)http响应
状态行:http版本、状态码、状态描述
响应头:包含元数据(服务器告诉客户端发送回来的数据格式、content-type)
空行
消息体:服务器响应的数据
content-type:表示服务器传递回客户端的数据格式、数据类型
===============================================
get、post请求都是service来进行处理
Tomcat既是服务器又是容器,Tomcat默认就支持servlet和jsp运行
Tomcat负责创建servlet以及servlet里面数据的封装、以及servlet方法的调用
servlet和容器(Tomcat)的关系:
1、通信支持 Tomcat会调用servlet api方法来进行通信,service方法Tomcat默认调用
2、多线程支持 Tomcat默认已经实现了多线程,每次请求都会默认创建新的线程来处理(servlet效率比较高)
3、jsp支持 Tomcat也支持jsp
4、生命周期管理 servlet或者jsp生与死由容器来进行控制
5、安全信息管理 Tomcat做了一些安全验证,比如web-inf(用户无法访问)
线程不安全的
jsp是 servlet
jsp重在数据的拼接
servlet重在业务的处理
下图表示jsp的数据拼接
jsp技术自动将数据进行拼接
get.write()
==========================================
状态的跟踪
有状态的会话:客户端第一次访问服务器完了后,再次访问服务器,服务器能够识别到这两次请求是同一个用户的行为
无状态的会话:多次访问服务器 ,对于服务器来说每次访问都是一个新的用户
会话:打开浏览器访问吴服务器,关闭浏览器
请求:打开 浏览器输入地址回车。刷新。
http是无状态的协议,每次访问服务器完了后,客户端和服务器断开连接。
为了模拟多用户,一个浏览器就是一个用户对象。
引入一些列新的技术,保存用户会话状态
hidden隐藏
cookie
session
url重写
cookie:是客户端的技术,程序把每个用户的数据以cookie的形式保存在浏览器里面。当用户使用浏览器访问服务器的时候,将cookie传递给服务器,服务器就能获取cookie数据。
请求行 http协议中的信息
//获取请求行的信息
req。getRequestURI();
req。getRequestURL().tostring();
获取请求头信息
req.getHeader(“User-Agent”);
获取到cookie
Cookie【】 cookies =req . getCookies();
//将这两句代码放在最上面
//设置服务器传回来的数据格式 图片形式
==========================================
获取产生cookie的时间
cookie默认不支持中文
cookie:安全性不高,一般不会将重要的信息保存cookie。保存时间,保存一些id
相当于存折,所有数据都是公开的
============================================
session :
银行卡–卡号。所有数据都在服务器
session保存会话技术的一种,保存在服务器,一个浏览器独占一个session对象。可以将一些隐私数据保存到session对象中,来达到会话状态管理
1.怎么创建session
2.session用法
3.销毁session
访问服务器,从服务器获取带session对象,如果获取不到创建一个session,将session的id保存到cookie,将cookie发送回客户端,下次再访问的时候,将cookie发给服务器,取出sessionid匹配session对象
一个浏览器对应一个session对象
================================================
使用场景 欢迎…登录
============================================================
重定向和内部派发
请求派发是在服务器内部完成的,不能跨服务器访问,只能派发到本服务器的其他资源
重定向是客户端发起的多次请求,可以跨服务器,第一次访问百度,第二次访问其他服务器
请求派发,整个流程只有一个请求,经过多个资源
内部派发发起了两次请求,产生两个请求对象和两个响应对象
请求派发可以传递数据
重定向不好传递数据
请求派发浏览器地址栏不变
重定向浏览器地址栏发生变化
Tomcat服务器默认session对象生命周期为30分钟
更改:
1 在自己的项目下web。xml文件 默认最小时间单位分钟
2.session。setMaxInactiveInterval();
3.立即销毁 用于注销
================================================
注销
===============================================