目录

​​一,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协议,会在响应头加⼊这⾏代码:

Connection:keep-alive

在使⽤⻓连接的情况下,当⼀个⽹⻚打开完成后,客户端和服务器之间⽤于传输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地址:端⼝号/项⽬名/被访问的⻚⾯,示例:

http://localhost:8080/test0918

注: (1)启动tomcat后,tomcat会加载部署在服务器端的所有项⽬

(2) 浏览器访问的⻚⾯是服务器端的⻚⾯,基本上服务器的项⽬和⼯作空间的项⽬要保持⼀致

 

五,idea配置tomcat

1,配置环境

1,点击Run---EDit Configurations...

06-JavaWEB_环境搭建_javaweb

2,点击左侧“+”号,找到Tomcat Server---Local(若是没有找到Tomcat Server 可以点击最后⼀⾏ 34 items more)

06-JavaWEB_环境搭建_HTTP_02

  

06-JavaWEB_环境搭建_环境搭建_03

3,在Tomcat Server -> local-> Server -> Application server项⽬下,点击 Configuration ,找到本地Tomcat 服务器,再点击 OK按钮。

06-JavaWEB_环境搭建_环境搭建_04

⾄此,IntelliJ IDEA配置Tomcat完成

2,创建web项目

1,点击左上⻆的File-->New-->Project

06-JavaWEB_环境搭建_Java开发工程师_05

2,找到Java Enterprise之后,在Application Sever中找到⾃⼰的Tomcat,同时勾选中Web Application

06-JavaWEB_环境搭建_HTTP_06

06-JavaWEB_环境搭建_Java开发工程师_07

   

06-JavaWEB_环境搭建_HTTP_08

06-JavaWEB_环境搭建_环境搭建_09

3,第⼀项是你的⼯程名字,第⼆个是你的⼯程路径,选择好之后点击finish

06-JavaWEB_环境搭建_Java开发工程师_10

4,创建classes和lib⽂件夹,名字不可改(classes存放编译后的字节码文件)

06-JavaWEB_环境搭建_环境搭建_11

   

06-JavaWEB_环境搭建_HTTP_12

5.配置jar包和classes包:

在File中找到Project Structure

06-JavaWEB_环境搭建_服务器_13

点击Modules ,选择Paths,选中Use module compile output path ,把路径改成刚刚创建的classes⽂件夹

06-JavaWEB_环境搭建_HTTP_14

ok后再点旁边的Dependencies,点击"+"号,选择1 JARs or directories ,

06-JavaWEB_环境搭建_HTTP_15

选择你刚刚创建的lib⽂件夹,OK

06-JavaWEB_环境搭建_Java开发工程师_16

选中jar Directory

06-JavaWEB_环境搭建_HTTP_17

修改Scope为

06-JavaWEB_环境搭建_环境搭建_18

6,部署项⽬:将本地项⽬安装到服务器中

回到主界⾯后,点击Run ,选择Edit Configurations

06-JavaWEB_环境搭建_javaweb_19

看tomcat已经有啦,这是java Enterprise的好处啦,点击Deployment

06-JavaWEB_环境搭建_Java开发工程师_20

点击右上⻆的三⻆形

06-JavaWEB_环境搭建_HTTP_21

⾄此,intellij idea创建并设置javaweb⼯程全部完成

 

六,tomcat常用操作

1,修改端口号

修改配置⽂件:/conf/server.xml

<Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

如果将端⼝号改成80,则访问项⽬时的请求路径就可以省略端⼝号。

2,tomcat如何管理项⽬

注意:tomcat启动的时候会加载webapps下的所有项⽬。

所以有时候启动项目越来越慢,可能是因为项目太多;

1,启动tomcat,查看manager app

06-JavaWEB_环境搭建_javaweb_22

06-JavaWEB_环境搭建_Java开发工程师_23

06-JavaWEB_环境搭建_HTTP_24

2,关闭tomcat

3,给tomcat增加管理员信息:配置conf/tomcat-users.xml

<tomcat-users>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>

06-JavaWEB_环境搭建_javaweb_25

4,再次启动tomcat,点击登录manager app

06-JavaWEB_环境搭建_服务器_26

5,管理项目的状态

06-JavaWEB_环境搭建_HTTP_27


章节汇总在这里(づ ̄3 ̄)づ╭❤~​​@&再见萤火虫&【06-JavaWEB】​​

对学习Java感兴趣的同学欢迎加入QQ学习交流群:1126298731

有问题欢迎提问,大家一起在学习Java的路上打怪升级!(o゜▽゜)o☆[BINGO!]