本文共 2740 字,大约阅读时间需要 9 分钟。
一.Http协议、HTTPS协议
1.什么是HTTPS
HTTPS基于安全套接字层的超文本传输协议,是一个Netscape开发的web协议。即HTTPS=HTTP+SSL,HTTPS在HTTP在HTTP应用层的基础上使用安全套接字层作为子层。
2.为什么需要HTTPS
超文本传输协议(HTTP)是一个用来通过互联网传输的和接受信息的协议,HTTP使用请求/相应的过程,因此信息可在服务器间快速、轻松而且精确的进行传输。当你访问Web页面的时候你就是在使用HTTP协议,但HTTP是不安全的,可以轻松对窃听你跟web服务器之间的数据传输,为了防止未经授权的访问,网景公司推出了HTTPS,也就是基于安全套接字层的HTTP协议。
3.HTTP和HTTPS的相同点
大多数情况下,HTTP和HTTPS是相同的,因为都是采用同一个基础的协议,作为HTTP或HTTPS客户端--游览器,设立一个连接到Web服务器指定的端口。当服务器接受到请求,它会返回一个状态码以及消息,这个回应可能是请求信息、或者指示某个错误发送的错误信息。系统使用同一资源定位器URI模式,因此资源可以被唯一指定。而HTTPS和HTTP唯一不同的只是一个协议头(https)的说明,其他都是一样的。
4.HTTP和HTTPS的不同之处
HTTP的URL以http://开头,而HTTPS的URL以https://开头
HTTP是不安全的,而HTTPS是安全的
HTTP标准端口是80,而HTTPS的标准端口是443
在OSI网络模型中,HTTP工作于应用层,而HTTPS工作的传输层
HTTP无需加密,而HTTPS对传输的数据进行加密
HTTP无需证书,而HTTPS需要证书
5.如何通信
建立连接、发起请求、接受响应、断开连接;
一次请求一次连接,降低服务器的压力
6.数据格式
---请求数据
请求行:请求的基本信息
消息头:请求数据的描述
实体内容:具体的业务数据
---相应数据
状态行:相应的基本信息
消息头:相应数据的描述
实体内容:具体的返回数据
7.对开发者的要求
---不同开发者处理的地方
游览器自动打包请求数据
游览器自动发送请求数据
服务器自动打包响应数据
服务器自动发送响应数据
---需要开发者处理的地方
提供具体的请求中的业务数据
提供具体的响应中的返回数据
通过request处理请求数据,通过response处理响应
二、Servlet例子
在webapp下新建一个register.xml文件
Insert title here
RegServlet.java
package web;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class RegServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // TODO Auto-generated method stub req.setCharacterEncoding("utf-8");//只对post有效 //处理请求的一般步骤 //1.接受参数 String user=req.getParameter("userName"); String pwd=req.getParameter("pwd"); String sex=req.getParameter("sex"); String[] interests = req.getParameterValues("interest"); //2.处理业务 System.out.println(user); System.out.println(pwd); System.out.println(sex); if(interests!=null) { for(String i:interests) { System.out.println(i); } } //3.发送相应 res.setContentType("text/html;charset=utf-8");//注意这里 PrintWriter out = res.getWriter(); out.println("注册成功
"); out.close(); } }
三、Servlet原理
三、请求方式
1.什么是请求方式?
就是游览器向服务器发送数据的方式:需要掌握众多方式中的两种:GET和POST.
2.GET
采用请求路径传参;参数在传递过程中可见,导致隐私性差
路径可以容纳的数据有限,只能传少量数据
所有的请求默认都是GET请求
3.POST
采用实体内容传参,参数在传递过程中不可见,隐私性好。
实体内容专门用来传数据,大小没有限制
在form上加method=”post”
4.观察GET和POST请求
在游览器上按快捷键F12,看NetWork选项
四、乱码处理
1.get/post
将乱码后的字符串按照ISO还原成byte,再将byte按照UTF-8编码成字符串
byte[] bs = user.getBytes("ISO8859-1");
user = new String(bs,"utf-8");
2.get(只对)
修改tomcat配置文件,在server.xml第65行,加URIEncoding=“utf-8”
3.post(只对)
在接受参数前,加req.setCharacterEncoding(“utf-8”)