Http协议和Tomcat服务器
1 Http协议
1.1 Http协议的概念
HTTP,超文本传输协议是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
-
传输协议:定义了客户端和服务器端通信时发送数据的格式
-
特点:
- 基于TCP/IP的高级协议
- 默认端口号:80
- 基于请求/响应模型的:一次请求对应一次响应
- 无状态的:每次请求之间相互独立,不能交互数据
-
历史版本
- 1.0:每一次请求相应都会建立新的连接
- 1.1:复用连接
1.2 HTTP协议的组成
Http协议由Http请求和Http响应组成,当在浏览器中输入网址访问某个网站时,你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请求后会组织响应数据封装成一个Http响应返回服务器。即没有请求就没有响应。
1.3HTTP请求
- 请求行:GET /DemoEE/form.html
请求方式:HTTP协议有7中请求方式,常用的有2种- GET(直接访问,超链接,表单中的method=get等)
- 请求参数在请求行中,在url后
- 请求的url长度有限制的
- 不太安全
- POST(只有在form表单method=post时候)
- 请求参数在请求体中
- 请求的url长度没有限制的
- 相对安全
- GET(直接访问,超链接,表单中的method=get等)
其他请求方式: PUT DELETE
请求的资源:/DemoEE/form.html
请求协议/版本:HTTP1.1: 协议和版本
/day02_war_exploded/index.html: 资源地址URI
-
请求头
请求头是客户端发送给服务器端的一些信息,使用键值对表示key:value
-
请求体
当请求方式是post的时,封装POST请求消息的请求参数的,格式如下:
username=zhangsan&password=123
如果请求方式为get,那么请求参数不会出现在请求体中,会拼接在url后面:
http://localhost:8080…?username=zhangsan&password=123
1.4 Http响应
-
响应行
Http协议:
状态码:常用的状态码如下:- 200:请求成功
- 302:请求重定向
- 304:请求资源没有改变,访问本地缓存。
- 404:请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。
- 500:服务器内部错误。通常程序抛异常。
状态信息:状态信息是根据状态码变化而变化的。
-
响应头
响应也都是键值对形式,服务器端将信息以键值对的形式返回给客户端。
-
响应体
响应体是服务器写给客户端的页面正文,浏览器将正文加载到内存,然后解析渲染显示页面内容。
2 Tomcat服务器
2.1Web开发中的常见概念
2.1.1B/S系统和C/S系统
- Brower/Server:浏览器./服务器 系统----网站
- Client/Server:客户端/服务器 系统-----QQ、大型游戏
2.1.2Web应用服务器
供向外部发布web资源的服务器软件
2.1.3 web资源
存在于web应⽤服务器可供外界访问的资源就是web资源。
例如:存在于web应⽤服务器内部的Html、CSS、JS、图⽚、视频等。
-
静态资源:指web⻚⾯中供⼈们浏览的数据始终是不变。⽐如:HTML、CSS、JS、图⽚、多
媒体。 -
动态资源:指web⻚⾯中供⼈们浏览的数据是由程序产⽣的,不同时间点访问web⻚⾯看到
的内容各不相同。⽐如:JSP/Servlet、ASP、PHP
javaWEB领域:动态资源认为通过java代码去动态⽣成html。
2.1.4请求和响应
2.1.5请求的URL地址
2.2 Web开发中常⽤的web应⽤服务器
- WebLogic:oracle公司的⼤型收费web服务器,⽀持全部JavaEE规范。
- WebSphere:IBM公司的⼤型收费web服务器,⽀持全部的JavaEE规范。
- Tomcat:Apache开源组织下的开源免费的中⼩型的web应⽤服务器,⽀持JavaEE中的Servlet 和 JSP规范。
3.3 Tomcat的⽬录结构
- bin:脚本⽬录
- 启动脚本:startup.bat
- 停⽌脚本:shutdown.bat
- conf:配置⽂件⽬录 (config /configuration)
- 核⼼配置⽂件:server.xml
- ⽤户权限配置⽂件:tomcat-users.xml
- 所有web项⽬默认配置⽂件:web.xml
- lib:依赖库,tomcat和web项⽬中需要使⽤的jar包
- logs:⽇志⽂件
- localhost_access_log..txt tomcat 记录⽤户访问信息,星表示时间。
- 例如:localhost_access_log.2016-02-28.txt
- temp:临时⽂件⽬录,⽂件夹内内容可以任意删除。
- webapps:默认情况下发布WEB项⽬所存放的⽬录。
- work:tomcat处理JSP的⼯作⽬录。3 Tomcat的⽬录结构
3.4 Tomcat启动不成功的原因分析
- 如果没有配置 JAVA_HOME 环境变量,在双击 startup.bat ⽂件运⾏ tomcat 时,将⼀闪⽴即关闭。且必须配置正确,及 JAVA_HOME 指向JDK的安装⽬录
- 端⼝冲突
java.net.BindException: Address already in use: JVM_Bind <null>:8080
- 暴力:找到占用的端口号,并且找到对应的进程,杀死该进程
# windows系统 netstat -ano # Linux系统 sudo lsof -i :端⼝ sudo kill 端⼝
- 温柔修改自身的端口号
conf/server.xml
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8445" />
<!-- ⼀般会将tomcat的默认端⼝号修改为80。80端⼝号是http协议的默认端⼝
号。-->
<!-- 好处:在访问时,就不⽤输⼊端⼝号 -->
3.5Web应用的目录结构
4 项⽬部署
部署项⽬的⽅式:
- 直接将项⽬放到 webapps ⽬录下即可。
- hello:项⽬的访问路径 → 虚拟⽬录
- 简化部署:将项⽬打成⼀个war包,再将war包放置到webapps⽬录下
- war包会⾃动解压缩
- 配置 conf/server.xml ⽂件
在 标签体中配置- docBase:项⽬存放的路径
- path:虚拟⽬录
- 在 conf\Catalina\localhost 创建任意名称的xml⽂件。
- 在⽂件中编写
- 虚拟⽬录:xml⽂件的名称