HTTP
2021-01-23 02:12
标签:错误 gen lis 兼容性问题 live com jsp contain web服务器 HTTP 概念: http:Hyper Text Transfer Protocol--超文本传输协议。 历史版本: 1.0:每一次请求响应都会建立新的连接 1.1:复用连接 请求方式: HTTP协议有7中请求方式,常用的有2种 GET: 请求参数在请求行中,在url后。 请求的url长度有限制的 不太安全 POST: 请求参数在请求体中 请求的url长度没有限制的 相对安全 请求方式 请求url 请求协议/版本 GET /login.html HTTP/1.1 请求方式: HTTP协议有7中请求方式,常用的有2种 请求头名称: 请求头值 常见请求头: Connection: keep-alive 连接的方式 长连接 User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息 可以在服务器端获取该头的信息,解决浏览器的兼容性问题 Referer:http://localhost/login.html 告诉服务器,我(当前请求)从哪里来? 作用: 防盗链: 统计工作: 空行,就是用于分割POST请求的请求头,和请求体的。 封装POST请求消息的请求参数的 http协议 状态码 HTTP/1.1 200 常用响应状态码 一般为html文件 IP:计算机(电子设备)在网络中定位(唯一标识)。 端口:找到计算机中的应用程序(唯一标识) 服务器概念: 服务器指一个管理资源并为用户提供服务的计算机软件,服务器的本质其实就是普通的电脑中装了相关的服务器软件。 当我们的电脑装了mysql,就会成为一个数据库服务器。 当我们的电脑装了Tomcat就成为了一个web 应用服务器。 服务器分类: 服务器:安装了服务器软件的计算机 服务器软件:接收用户的请求,处理请求,做出响应 web服务器软件:接收用户的请求,处理请求,做出响应。 在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目。 部署项目的方式: 直接将项目放到webapps目录下即可。 /hello:项目的访问路径-->虚拟目录 简化部署:将项目打成一个war包,再将war包放置到webapps目录下。 war包会自动解压缩 配置conf/server.xml文件 在 docBase:项目存放的路径 path:虚拟目录 (热部署)在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写 虚拟目录:xml文件的名称 静态项目和动态项目: 目录结构 java动态项目的目录结构: -- 项目的根目录 -- WEB-INF目录: -- web.xml:web项目的核心配置文件 -- classes目录:放置字节码文件的目录 -- lib目录:放置依赖的jar包 IDEA会为每一个tomcat部署的项目单独建立一份配置文件 查看控制台的log:Using CATALINA_BASE: "C:\Users\fqy.IntelliJIdea2018.1\system\tomcat_itcast" WEB-INF受保护的文件夹不能够通过浏览器客户端直接访问,必须通过服务器访问访问里面的资源。 css, image js其他的插件等静态资源统统都放到web的根目录下。 Server Applet : 使用java语言编写的运行在服务器端上的小程序。 是sun公司提供 一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。 init方法:servlet创建的时候执行 service方法:每次发送请求的时候执行 ServletRequest 代表请求认为ServletRequest 内部封装的是http请求的信息 ServletResponse 代表响应认为要封装的是响应的信息 destory方法:服务器关闭的时候执行 方式一:在web.xml中配置 urlpattern的配置方式 完全匹配如 /myServlet 目录匹配如 /a/b/c/* 扩展名匹配 *.do 缺省配置如 / 当你访问资源地址所有的servlet都不匹配 时,缺省的servlet负责处理其实,web应用中所有的资源 的响应都是servlet负责,包括静态资源,对于静态资源其 实是由tomcat的默认servlet进行处理的 /和/*区别 /不会处理后缀名是.jsp的资源 /*会处理后缀名是.jsp的资源 启动服务器的时候创建servlet配置 HttpServlet,这个是Tomcat提供的一个类,并且实现了 Servlet接口 HTTPServlet类不再需要重写多个方法,只需要重写doGet()、doPost()中的其中一个。 ServletContext代表是一个web应用的环境(上下文) 对象。 一个web应用只有一个ServletContext对象 。 ServletContext的生命周期一般会随着服务器的启动而创建,web应用被卸载而销毁。 ServletContext中的数据是整个web应用所共享的 。 获取对象:在方法里使用 常用方法: HttpServletResponse是ServletResponse的子接口 response重定向 获取uri和url路径 获取web应用的名称和请求IP地址 获取请求的内容 请求乱码问题 客户端向服务器发送请求,服务器收到这个请求以后,可以在内部进行一个转发功能,也就是在不告知客户端的情况下进行请求的转发。 内部转发客户端浏览器的地址不会发生改变,因为自始至终客户端只发送一个请求 通过内部转发路径一定要注意,因为操作过程是在服务器 内部进行操作的,所以地址就不能够是客户端地址,而应该 是服务器端地址,路径不能再写web应用的名称,/就web应 用的根目录 通过内部转发,两个servlet或者两个界面的接收到的 request内的内容是相同的 因为内部转发是在服务器内部做的处理,所以内部转发是 可以直接访问到WEBINF下的内容的 HTTP 标签:错误 gen lis 兼容性问题 live com jsp contain web服务器 原文地址:https://www.cnblogs.com/---------zjh---------/p/13280930.html
请求消息数据格式
请求行
请求头:客户端浏览器告诉服务器一些信息
请求空行
请求体(正文)
HTTP相应
响应行
常用状态码
意义
202
请求成功
302
重定向
304
读取本地缓存文件
404
请求的页面不存在
500
服务端程序错误
响应体
Tomcat
基本概念
文件夹分类
配置:
IDEA与tomcat的相关配置
注意点
Servlet
Servlet内部实现原理
Servlet生命周期
Servlet的配置
HttpServlet
ServletContext对象
this.getServletContext();
//向ServletContext域中放入数据
setAtrribute(String name,Object obj);
//从ServletContext域中获取数据
getAttribute(String name);
//从ServletContext域中删除数据
removeAttribute(String name);
HttpServletResponse
response.setStatus(302);
response.setHeader("Location", "/WebTes t/index.html");
//以上功能能够实现重定向,原理就是当客户端收到响应后,响应头信息中含有 Location 是 /WebTest/index.html ,所以客户端就会自动跳转, 当然我们如果要去实现重定向,可以直接使用封装好的方法,但是其内部实现还是上述内容.
//等同于一下方法:
response.sendRedirect("/WebTest/index.html");//重定向
response.setHeader("refresh", "2;url=/Day 11/index.html");//定时重定向
HttpServletRequest
//获取uri,就是请求行中的地址
String uri = request.getRequestURI();
//获取url,获取全路径
StringBuffer url = request.getRequestURL();
//获取当前web应用名称---->虚拟目录
String webName = request.getContextPath();
//获取请求的客户端的ip地址
String ipAddress = request.getRemoteAddr();
//1.获取请求头的内容
//获取指定header的内容
String header = request.getHeader("User-Agent");
//获取所有header的名字
Enumeration
//对于post提交
request.setCharacterEncoding("UTF-8");
//对于get提交,如果出现乱码
String parameter = request.getParameter("us ername");
parameter = new String(parameter.getbytes("iso8859-1"),"utf-8");
内部转发
//获取内部转发器
RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
//进行转发
dispatcher.forward(request, response);
//通常是连写
//request.getRequestDispatcher("/index.jsp").forward(request, response);
下一篇:selenium执行js代码