十分钟带你学会Http协议和Tomcat服务器的原理
1、 Http协议
1. 什么是Http协议
HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法
2. Http协议的组成
Http协议由Http请求和Http响应组成,当在浏览器中输入网址访问某个网站时,你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请求后会组织响应数据封装成一个Http响应返回给浏览器。即没有请求就没有响应。

3. Http请求
编辑一个form.html的表单页面,如下:
点击提交按钮,抓包如下:

1) 请求行
请求方式:POST、GET
请求的资源:/DemoEE/form.html
协议版本:HTTP/1.1
HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开。
HTTP/1.1,发送请求,创建一次连接,获得多个web资源,保持连接。
2) 请求头
请求头是客户端发送给服务器端的一些信息,使用键值对表示key:value
3) 请求体
当请求方式是post的时,请求体会有请求的参数,格式如下:
username=zhangsan&password=123
如果请求方式为get,那么请求参数不会出现在请求体中,会拼接在url地址后面
4. Http响应
1) 响应行
Http协议
状态码:
常用的状态码如下:
200 :请求成功。
302 :请求重定向。
304 :请求资源没有改变,访问本地缓存。
404 :请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。
500 :服务器内部错误。通常程序抛异常。
状态信息:状态信息是根据状态码变化而变化的
2) 响应头
响应也都是键值对形式,服务器端将信息以键值对的形式返回给客户端
3) 响应体
响应体是服务器回写给客户端的页面正文,浏览器将正文加载到内存,然后解析渲染显示页面内容
2、 Tomcat服务器
1. Web开发中的常见概念
(1) B/S系统和C/S系统
Brower/Server:浏览器 服务器 系统 ----- 网站
Client/Server:客户端 服务器 系统 ----- QQ、大型游戏
(2) web应用服务器
供向外部发布web资源的服务器软件
(3) web资源
存在于web应用服务器可供外界访问的资源就是web资源
例如:存在于web应用服务器内部的Html、Css、js、图片、视频等
1)静态资源:指web页面中供人们浏览的数据始终是不变。比如:HTML、CSS、JS、图片、多媒体。
2)动态资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。比如:JSP/Servlet、ASP、PHP
javaWEB领域:动态资源认为通过java代码去动态生成html
(4) 请求和响应
(5) 请求的URL地址
2. Web开发中常用的web应用服务器
1) weblogic:oracle公司的大型收费web服务器 支持全部javaEE规范
2) websphere:IBM公司的大型收费web服务器 支持全部的javaEE规范
3) Tomcat:Apache开源组织下的 开源免费的中小型的web应用服务器 支持javaEE中的 servlet 和 jsp规范
3. Tomcat的下载与安装
(1) 下载Tomcat
官网地址:
(2) 安装Tomcat
Tomcat有安装版和解压版(绿色版)
安装版以.exe形式的安装包,双击安装到我们的电脑上,用的比较少
解压版,即绿色版,解压后直接使用,用的比较多
4. 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的工作目录。
5. Tomcate的启动与运行
双击Tomcat下的bin下的startup.bat启动Tomcat
在浏览器的地址栏中输入http://localhost:8080,看到如下页面证明启动成功
Tomcat启动不成功的原因分析:
1) 如果没有配置JAVA_HOME环境变量,在双击"startup.bat"文件运行tomcat时,将一闪立即关闭。且必须配置正确,及JAVA_HOME指向JDK的安装目录
2) 端口冲突
java.net.BindException: Address already in use: JVM_Bind <null>:8080
修改Tomcat/conf/server.xml
6. Web应用的目录结构
注意:WEB-INF目录是受保护的,外界不能直接访问
7. 使用Eclipse绑定Tomcat并发布应用
步骤1:获得服务器运行环境配置,Window/Preferences/Server/Runtime Environmen
步骤2:添加服务器
步骤3:选择服务器在硬盘的地址,然后所有的都是确定/Next/Finish
步骤4:完成成功
步骤5:设置发布位置
修改tomcat发布的位置
步骤6:项目右键/Run As/Run on Server
十分钟带你学会Http协议和Tomcat服务器的原理的更多相关文章
- Http协议和Tomcat服务器
Http协议和Tomcat服务器 什么是Http协议 HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议. Http协议的组成 Ht ...
- JavaWeb学习笔记二 Http协议和Tomcat服务器
Http协议 HTTP,超文本传输协议(HyperText Transfer Protocol),是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为 ...
- JavaEE之Http协议和Tomcat服务器
Http协议 什么是Http协议 HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的 一种网络协议.所有的WWW文件都必须遵守这 ...
- 十分钟带你读懂《增长黑客》zz
背景 “If you are not growing, then you are dying. ”(如果企业不在增长,那么就是在衰亡!) 这句话适用于企业,也适用于个人.人生毕竟不像企业,是非成败,似 ...
- 一分钟带你学会利用mybatis-generator自动生成代码!
目录 一.MyBatis Generator简介 二.使用方式 三.实战 之前的文章<SpringBoot系列-整合Mybatis(XML配置方式)>介绍了XML配置方式整合的过程,本文介 ...
- 十分钟带你了解CANN应用开发全流程
摘要:CANN作为昇腾AI处理器的发动机,支持业界多种主流的AI框架,包括MindSpore.TensorFlow.Pytorch.Caffe等,并提供1200多个基础算子. 2021年7月8日,第四 ...
- 十分钟带你理解Kubernetes核心概念
什么是Kubernetes? Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展.如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成K ...
- 十分钟带你看一遍ES6新特性
let , const关键字 var 看习惯了java, 看js真的是忍不住想笑,比如说这个var,它太自由了,自由到{}根本限制不住它的生命周期 js的var关键字,无论在何处声明,都会被视为声明在 ...
- [转]十分钟带你理解Kubernetes核心概念
本文将会简单介绍 Kubernetes的核心概念.因为这些定义可以在Kubernetes的文档中找到,所以文章也会避免用大段的枯燥的文字介绍.相反,我们会使用一些图表(其中一些是动画)和示例来解释这些 ...
随机推荐
- teleport助手不可以使用剪切板的问题解决
在使用teleport堡垒机的时候,你使用teleport助手会发现不可以使用剪切板,接下来就是解决方法. 解决办法:更新freerdp 基于环境:win10(win7下更新好像没有用),telepo ...
- java的finally简单理解
1. 大家都知道, 普通的try, catch, finally格式: try{ //有可能会抛出异常的代码 }catch{ //抛出异常时处理的代码 }finally{ //无条件执行的代码,就不管 ...
- 使用VNC访问Linux桌面
在一个严重依赖Windows的工作环境中,比如电子邮件被限定为Outlook(因为加密要求), VPN软件不支持Linux版本,那么,只使用Linux桌面是不够的,还需要在Linux桌面上跑个虚拟机运 ...
- js 页面间的通信
看了一下公司原来的代码,原页面ajax post返回一个页面完整的HTML,然后再打开一个新页面并输出ajax返回的所有代码到新页面上,在新页面上以表单提交的形式实现重定向. 任凭我想了半天也没想出来 ...
- 【扫盲】】32位和64位Windows的区别
用户购买windows安装盘或者重新安装操作系统的时候,通常会遇到这个问题,就是不知道该如何选择使用32位操作系统和64位操作系统,有人说64位系统速度快,其实理论上确实是这样,不过具体还要根据你的个 ...
- (最全)Xpath、Beautiful Soup、Pyquery三种解析库解析html 功能概括
一.Xpath 解析 xpath:是一种在XMl.html文档中查找信息的语言,利用了lxml库对HTML解析获取数据. Xpath常用规则: nodename :选取此节点的所有子节点 // : ...
- [转]jQuery ListBox Plugin(ListBox插件)
本文转自:http://www.cnblogs.com/think8848/archive/2011/09/28/2193990.html 转载请注明作者(think8848)和出处(http://t ...
- SSIS教程:创建简单的ETL包 -- 6. 对项目部署模型使用参数(Using Parameters with the Project Deployment Model)
在本课中,将修改在第 5 课: 添加包部署模型的包配置中创建的包,以便使用项目部署模型.您将使用一个参数替换该配置值,以便指定示例数据位置.还可以复制本教程附带的已完成的 Lesson 5 包. 使用 ...
- 使用AngularJS 添加行修改、删除表格数据
https://blog.csdn.net/xin_x1n/article/details/53070144 <html xmlns="http://www.w3.org/1999/x ...
- 一:Java基础
/-- 第一章:概念 --/ 1.java特点:跨平台.面向对象.开源 2.JVM是Java虚拟机的缩写,可以实现跨平台 3.java运行原理: 1).编写java源文件,以.java作为后缀名 2) ...