1.1Http协议
-超文本传输协议
-浏览器和服务器之间的一种通讯协议
-由W3c制定,本质上是数据传输格式制定好了。浏览器和服务器必须按照这种格式进行接收
1.2Http协议包括两部分
-请求协议:从Browser发送到Server时采用的数据格式
-响应协议:从Server发送到Browser采用的数据传输格式
1.3请求协议:
-请求行
-消息报头
-空白行
-请求体
请求行包括:请求方式、URL、协议版本号
空白行:专门用来分离消息报头和请求体
1.4响应协议:
-状态行
-响应报头
-空白行
-响应体
状态行:协议版本号、状态码、状态描述信息
空白行:分离响应报头和响应体
2.GET和POST
-何时使用两者?
只有当使用form,并且将form标签的method属性设置为method=“post”
才是POST请求,其余情况都是GET方式
-区别
GET请求在请求行上提交数据,格式:url?name=value&name=value。。。
这种提交方式会显示在浏览器地址栏上
POST请求在请求体中提交数据,相对安全。提交格式:name=value&name=value。。
POST请求提交的数据没有长度的限制,而GET请求有。
GET请求只能提交字符串数据,POST请求可以提交任何类型,包括视频,所以文件上传必须使用POST请求
GET请求最终的结果,会被浏览器缓存收纳,POST请求不会被缓存
-如何选择?
有敏感信息,必须使用POST
传送数据非常多,或传送数据不是普通字符串,必须使用POST
请求是为了修改服务器数据,用POST
GET请求多数情况下,是从服务器读取数据,这个读取的资源在短时间之内是不会发生变化的,所以浏览器会将GET请求的结果缓存起来
POST请求是为了修改服务器端的资源,而每一次修改结果都是不同的,没有必要被缓存
-浏览器将资源缓存后,缓存的资源是和某个特定的路径绑定在一起,只要浏览器再发送这个相同的路径,这个时候会去缓存获取资源,不再访问服务器。以这种方式降低服务器的压力
提高用户的体验,但是有时候,我们不希望缓存,想每次都访问服务器,可以在请求路径后添加时间戳:
http://ip:port/oa/system/logout?timestemp=12312312312
JS获取毫秒:new Date.getTime()
-编写一个Servlet类应当继承javax.servlet.http.HttpServlet,get请求请重写doGet方法,post请求要重写doPost方法
-doPost和doGet方法可等同看做main方法
模板设计模式(template)应用于什么项目?
-Servlet规范中:HttpServlet
-HttpServlet是一个典型模板设计模式
-HttpServlet是一个模板类
-其中service(HttpServletRequest,HttpServletResponse)方法是典型的模板方法
-该方法中定义了核心算法骨架,doGet,doPost。。具体实现步骤延迟到子类中完成
模板方法设计模式特点:
doXXX
doYYY
属于行为型设计模式
模板设计模式作用:
核心算法得到保护
核心算法可复用
不改变算法的前提下,可以重新定义算法步骤的具体实现
-
转载请注明原文地址: https://ju.6miu.com/read-661952.html