目录
一,HTTP协议介绍
1,HTTP 请求/响应的步骤
1.1 客户端连接到Web服务器
1.2 发送HTTP请求
1.3 服务器接受请求并返回HTTP响应
1.4 释放TCP连接
1.5 客户端浏览器解析HTML内容
二,HTTP请求方式和开发模式
1,HTTP请求方法
1.1 GET
1.2 HEAD
1.3 POST
1.4 PUT
1.5 DELETE
1.6 TRACE
1.7 OPTIONS
1.8 CONNECT
2,两种开发模型
三,web服务器介绍
3.1 Tomcat 服务器
3.2 Resin 服务器
3.3 JBoss服务器
3.4 WebSphere 服务器
3.5 WebLogic 服务器
四,第一个tomcat项目
1,tomcat的目录
1.1 bin
1.2 conf
1.3 lib
1.4 logs
1.5 temp
1.6 webapps
1.7 work
1.8 LICENSE许可证。
1.9 NOTICE说明文件。
1.10 通过url访问服务器:
五,idea配置tomcat
1,配置环境
2,创建web项目
六,tomcat常用操作
1,修改端口号
2,tomcat如何管理项⽬
一,HTTP协议介绍
超⽂本传输协议(英⽂:HyperText Transfer Protocol,缩写:HTTP)是⼀种⽤于分布式、协作式和超媒体信息系统的应⽤层协议。HTTP是万维⽹的数据通信的基础。
HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核⼦研究组织(CERN)所发起。HTTP的标准制定由万维⽹协会(World Wide Web Consortium,W3C)和互联⽹⼯程任务组(Internet Engineering Task Force,IETF)进⾏协调,最终发布了⼀系列的RFC,其中最著名的是1999年6⽉公布的 RFC 2616,定义了HTTP协议中现今⼴泛使⽤的⼀个版本——HTTP 1.1。
无状态保存:HTTP是一种不保存状态,即无状态(stateless)协议。 HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。
关于HTTP和HTTPS可以参考这篇文章,<( ̄︶ ̄)↗[GO!]@会飞的狗~【HTTP和HTTPS协议,看一篇就够了】(可能细节部分有不准确的地方,若只是大致了解下的话,影响不大)
《图解HTTP》这本书中曾提过HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
PS:TLS是传输层加密协议,前身是SSL协议,由网景公司1995年发布,有时候两者不区分。
1,HTTP 请求/响应的步骤
1.1 客户端连接到Web服务器
⼀个HTTP客户端,通常是浏览器,与Web服务器的HTTP端⼝(默认为80)建⽴⼀个TCP套接字连接。
例如:http://www.baidu.com。
1.2 发送HTTP请求
通过TCP套接字,客户端向Web服务器发送⼀个⽂本的请求报⽂;
⼀个请求报⽂由请求⾏、请求头部、空⾏和请求数据4部分组成。
1.3 服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。
⼀个响应由状态⾏、响应头部、空⾏和响应数据4部分组成。
1.4 释放TCP连接
在HTTP/1.0中默认使⽤短连接。也就是说,客户端和服务器每进⾏⼀次HTTP操作,就建⽴⼀次连接,任务结束就中断连接。
当客户端浏览器访问的某个HTML或其他类型的Web⻚中包含有其他的Web资源(如JavaScript⽂件、图像⽂件、CSS⽂件等),每遇到这样⼀个Web资源,浏览器就会重新建⽴⼀个HTTP会话.
⽽从HTTP/1.1起,默认使⽤⻓连接,⽤以保持连接特性。使⽤⻓连接的HTTP协议,会在响应头加⼊这⾏代码:
在使⽤⻓连接的情况下,当⼀个⽹⻚打开完成后,客户端和服务器之间⽤于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使⽤这⼀条已经建⽴的连接.
Keep-Alive不会永久保持连接,它有⼀个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。
实现⻓连接需要客户端和服务端都⽀持⻓连接。HTTP协议的⻓连接和短连接,实质上是TCP协议的⻓连接和短连接。
1.5 客户端浏览器解析HTML内容
客户端浏览器⾸先解析状态⾏,查看表明请求是否成功的状态代码。然后解析每⼀个响应头,响应头告知以下为若⼲字节的HTML⽂档和⽂档的字符集。
客户端浏览器读取响应数据HTML,根据HTML的语法对其进⾏格式化,并在浏览器窗⼝中显示。
例如:在浏览器地址栏键⼊URL,按下回⻋之后会经历以下流程:
- 1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
- 2. 解析出 IP 地址后,根据该 IP 地址和默认端⼝ 80,和服务器建⽴TCP连接;
- 3. 浏览器发出读取⽂件(URL 中域名后⾯部分对应的⽂件)的HTTP 请求,该请求报⽂作为 TCP 三次握⼿的第三个报⽂的数据发送给服务器;
- 4. 服务器对浏览器请求作出响应,并把对应的 html ⽂本发送给浏览器;
- 5. 浏览器将该 html ⽂本并显示内容;
二,HTTP请求方式和开发模式
1,HTTP请求方法
HTTP/1.1协议中共定义了⼋种⽅法(也叫“动作”)来以不同⽅式操作指定的资源:
1.1 GET
向指定的资源发出“显示”请求。
使⽤GET⽅法应该只⽤在读取数据,⽽不应当被⽤于产⽣“副作⽤”的操作中,例如在Web Application中。其中⼀个原因是GET可能会被⽹络蜘蛛等随意访问。
1.2 HEAD
与GET⽅法⼀样,都是向服务器发出指定资源的请求。
只不过服务器将不传回资源的本⽂部分。它的好处在于,使⽤这个⽅法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。
1.3 POST
向指定资源提交数据,请求服务器进⾏处理(例如提交表单或者上传⽂件)。
数据被包含在请求本⽂中。这个请求可能会创建新的资源或修改现有资源,或⼆者皆有。
1.4 PUT
向指定资源位置上传其最新内容。
1.5 DELETE
请求服务器删除Request-URI所标识的资源。
1.6 TRACE
回显服务器收到的请求,主要⽤于测试或诊断。
1.7 OPTIONS
这个⽅法可使服务器传回该资源所⽀持的所有HTTP请求⽅法。
⽤'*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。
1.8 CONNECT
2,两种开发模型
(1)C/S⼜称Client/Server或客户/服务器模式。服务器通常采⽤⾼性能的PC、⼯作站或⼩型机,客户端需要安装专⽤的客户端软件。如QQ,微信等软件
- 优点:能充分发挥客户端PC的处理能⼒,很多⼯作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。
- 缺点:客户端需要安装专⽤的客户端软件。⾸先涉及到安装的⼯作量,其次任何⼀台电脑出问题,如病毒、硬件损坏,都需要进⾏安装或维护。特别是有很多分部或专卖店的情况,不是⼯作量的问题,⽽是路程的问题。还有,系统软件升级时,每⼀台客户机需要重新安装,其维护和升级成本⾮常⾼。
(2)B/S是Brower/Server的缩写,客户机上只要安装⼀个浏览器(Browser)。Browser/Server是建⽴在⼴域⽹的基础上的
- 优点:可以在任何地⽅进⾏操作⽽不⽤安装任何专⻔的软件。只要有⼀台能上⽹的电脑就能使⽤,客户端零维护。系统的扩展⾮常容易,只要能上⽹,就可以使⽤了。甚⾄可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要⼈的参与,系统可以⾃动分配给⽤户⼀个账号进⼊系统。
三,web服务器介绍
Web服务器是运⾏及发布Web应⽤的容器,只有将开发的Web项⽬放置到该容器中,才能使⽹络中的所有⽤户通过浏览器进⾏访问。
开发Java Web应⽤所采⽤的服务器主要是与JSP/Servlet兼容的Web服务器,⽐较常⽤的有Tomcat、Resin、JBoss、WebSphere 和 WebLogic 等
3.1 Tomcat 服务器
⽬前最为流⾏的Tomcat服务器是Apache-Jarkarta开源项⽬中的⼀个⼦项⽬,是⼀个⼩型、轻量级的⽀持JSP和Servlet 技术的Web服务器,也是初学者学习开发JSP应⽤的⾸选
3.2 Resin 服务器
Resin是Caucho公司的产品,是⼀个⾮常流⾏的⽀持Servlet和JSP的服务器,速度⾮常快。Resin本身包含了⼀个⽀持HTML的Web服务器,这使它不仅可以显示动态内容,⽽且显示静态内容的能⼒也毫不逊⾊,因此许多⽹站都是使⽤Resin服务器构建
3.3 JBoss服务器
JBoss是⼀个种遵从JavaEE规范的、开放源代码的、纯Java的EJB服务器,对于J2EE有很好的⽀持。
JBoss采⽤JML API实现软件模块的集成与管理,其核⼼服务⼜是提供EJB服务器,不包含Servlet和JSP的Web容器,不过它可以和Tomcat完美结合
3.4 WebSphere 服务器
WebSphere是IBM公司的产品,可进⼀步细分为 WebSphere Performance Pack、Cache Manager 和WebSphere Application Server等系列,其中WebSphere Application Server 是基于Java的应⽤环境,可以运⾏于 Sun Solaris、Windows NT 等多种操作系统平台,⽤于建⽴、部署和管理Internet和Intranet Web应⽤程序。
3.5 WebLogic 服务器
WebLogic 是BEA公司的产品(现在已经被Oracle收购),可进⼀步细分为 WebLogic Server、WebLogic Enterprise 和 WebLogic Portal 等系列,其中 WebLogic Server 的功能特别强⼤。
WebLogic⽀持企业级的、多层次的和完全分布式的Web应⽤,并且服务器的配置简单、界⾯友好。对于那些正在寻求能够提供Java平台所拥有的⼀切应⽤服务器的⽤户来说,WebLogic是⼀个⼗分理想的选择
四,第一个tomcat项目
1,tomcat的目录
1.1 bin
该⽬录下存放的是⼆进制可执⾏⽂件
- 如果是安装版,那么这个⽬录下会有两个exe⽂件:tomcat9.exe、tomcat9w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗⼝启动Tomcat;
- 如果是解压版,那么会有startup.bat和shutdown.bat⽂件,startup.bat⽤来启动Tomcat,但需要JDK的配置,shutdown.bat⽤来停⽌Tomcat;
1.2 conf
这是⼀个⾮常⾮常重要的⽬录,这个⽬录下有四个最为重要的⽂件:
server.xml
配置整个服务器信息。例如修改端⼝号,添加虚拟主机等;
tomcat-users.xml
存储tomcat⽤户的⽂件,这⾥保存的是tomcat的⽤户名及密码,以及⽤户的⻆⾊信息。
可以按着该⽂件中的注释信息添加tomcat⽤户,然后就可以在Tomcat主⻚中进⼊Tomcat Manager⻚⾯了;
web.xml
部署描述符⽂件,这个⽂件中注册了很多MIME类型,即⽂档类型。
这些MIME类型是客户端与服务器之间说明⽂档类型的.
- 如⽤户请求⼀个html⽹⻚,那么服务器还会告诉客户端浏览器响应的⽂档是text/html类型的,这就是⼀个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html⽂件了。
- 但如果服务器响应的是⼀个exe⽂件,那么浏览器就不可能显示它,⽽是应该弹出下载窗⼝才对。MIME就是⽤来说明⽂档的内容是什么类型的!
context.xml
对所有应⽤的统⼀配置,通常我们不会去配置它。
1.3 lib
Tomcat的类库,⾥⾯是⼀⼤堆jar⽂件。
如果需要添加Tomcat依赖的jar⽂件,可以把它放到这个⽬录中,当然也可以把应⽤依赖的jar⽂件放到这个⽬录中,这个⽬录中的jar所有项⽬都可以共享之,但这样你的应⽤放到其他Tomcat下时就不能再共享这个⽬录下的Jar包了,所以建议只把Tomcat需要的Jar包放到这个⽬录下;
1.4 logs
这个⽬录中都是⽇志⽂件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在⽇志⽂件中。
1.5 temp
存放Tomcat的临时⽂件,这个⽬录下的东⻄可以在停⽌Tomcat后删除!
1.6 webapps
存放web项⽬的⽬录,其中每个⽂件夹都是⼀个项⽬;
如果这个⽬录下已经存在了⽬录,那么都是tomcat⾃带的项⽬。其中ROOT是⼀个特殊的项⽬,在地址栏中没有给出项⽬⽬录时,对应的就是ROOT项⽬
http://localhost:8080/examples,进⼊示例项⽬。其中examples就是项⽬名,即⽂件夹的名字。
1.7 work
运⾏时⽣成的⽂件,最终运⾏的⽂件都在这⾥。通过webapps中的项⽬⽣成的!可以把这个⽬录下的内容删除,再次运⾏时会⽣再次⽣成work⽬录。当客户端⽤户访问⼀个JSP⽂件时,Tomcat会通过JSP⽣成Java⽂件,然后再编译Java⽂件⽣成class⽂件,⽣成的java和class⽂件都会存放到这个⽬录下。
1.8 LICENSE许可证。
1.9 NOTICE说明文件。
1.10 通过url访问服务器:
url:http://服务器的ip地址:端⼝号/项⽬名/被访问的⻚⾯,示例:
注: (1)启动tomcat后,tomcat会加载部署在服务器端的所有项⽬
(2) 浏览器访问的⻚⾯是服务器端的⻚⾯,基本上服务器的项⽬和⼯作空间的项⽬要保持⼀致
五,idea配置tomcat
1,配置环境
1,点击Run---EDit Configurations...
2,点击左侧“+”号,找到Tomcat Server---Local(若是没有找到Tomcat Server 可以点击最后⼀⾏ 34 items more)
3,在Tomcat Server -> local-> Server -> Application server项⽬下,点击 Configuration ,找到本地Tomcat 服务器,再点击 OK按钮。
⾄此,IntelliJ IDEA配置Tomcat完成
2,创建web项目
1,点击左上⻆的File-->New-->Project
2,找到Java Enterprise之后,在Application Sever中找到⾃⼰的Tomcat,同时勾选中Web Application
3,第⼀项是你的⼯程名字,第⼆个是你的⼯程路径,选择好之后点击finish
4,创建classes和lib⽂件夹,名字不可改(classes存放编译后的字节码文件)
5.配置jar包和classes包:
在File中找到Project Structure
点击Modules ,选择Paths,选中Use module compile output path ,把路径改成刚刚创建的classes⽂件夹
ok后再点旁边的Dependencies,点击"+"号,选择1 JARs or directories ,
选择你刚刚创建的lib⽂件夹,OK
选中jar Directory
修改Scope为
6,部署项⽬:将本地项⽬安装到服务器中
回到主界⾯后,点击Run ,选择Edit Configurations
看tomcat已经有啦,这是java Enterprise的好处啦,点击Deployment
点击右上⻆的三⻆形
⾄此,intellij idea创建并设置javaweb⼯程全部完成
六,tomcat常用操作
1,修改端口号
修改配置⽂件:/conf/server.xml
如果将端⼝号改成80,则访问项⽬时的请求路径就可以省略端⼝号。
2,tomcat如何管理项⽬
注意:tomcat启动的时候会加载webapps下的所有项⽬。
所以有时候启动项目越来越慢,可能是因为项目太多;
1,启动tomcat,查看manager app
2,关闭tomcat
3,给tomcat增加管理员信息:配置conf/tomcat-users.xml
4,再次启动tomcat,点击登录manager app
5,管理项目的状态
章节汇总在这里(づ ̄3 ̄)づ╭❤~@&再见萤火虫&【06-JavaWEB】
对学习Java感兴趣的同学欢迎加入QQ学习交流群:1126298731
有问题欢迎提问,大家一起在学习Java的路上打怪升级!(o゜▽゜)o☆[BINGO!]