HTTP协议
超文本传输协议(HyperText Transfer Protocol,缩写:HTTP)是?种用于分布式、协作式和 超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
HTTP 请求/响应的步骤?
1 客户端连接到Web服务器 ?个HTTP客户端(通常是浏览器)与Web服务器的HTTP端口(默认为80)建立?个TCP套接字连接。
2 发送HTTP请求 通过TCP套接字,客户端向Web服务器发送?个文本的请求报文,?个请求报文由请求行、请求头、 空行和请求数据4部分组成。?
3 服务器接受请求并返回HTTP响应 Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。?个响应由 状态行、响应头部、空行和响应数据4部分组成。
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协议的长连接和短连接。
5 客户端浏览器解析HTML内容 客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每?个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。 在浏览器地址栏键入URL,按下回车之后会经历以下流程: 1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址; 2. 解析出 IP 地址后,根据该 IP 地址和默认端口?80,和服务器建立TCP连接; 3. 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器; 4. 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器; 5. 浏览器将该 html 文本并显示内容;?
Http的无状态保存
Http是一种不保存状态(无状态)协议。字自身不对请求和响应之间的通信状态进行保存,也就是说在HTTP这个级别,协议对于发送过的请求或者响应都不做持久化处理
HTTP请求方法
HTTP/1.1协议中共定义了八种方法(也叫“动作”)来以不同?式操作指定的资源
GET
向指定的资源发出“显示”请求。使?GET?法应该只?在读取数据,?不应当被?于产?“副作?”的操作
中,例如在Web Application中。其中?个原因是GET可能会被?络爬虫等随意访问。
HEAD
与GET?法?样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本?部分。它的好
处在于,使?这个?法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信
息或称元数据)。
POST
向指定资源提交数据,请求服务器进?处理(例如提交表单或者上传?件)。数据被包含在请求本?
中。这个请求可能会创建新的资源或修改现有资源,或?者皆有。
PUT
向指定资源位置上传其最新内容。
DELETE
请求服务器删除Request-URI所标识的资源。
TRACE
回显服务器收到的请求,主要?于测试或诊断。
OPTIONS
这个?法可使服务器传回该资源所?持的所有HTTP请求?法。?'*'来代替资源名称,向Web服务器发送
OPTIONS请求,可以测试服务器功能是否正常运作。
CONNECT
静态网页无法对静态的内容在线更新?
动态网页可以根据不同的输入返回不同的网页
两种开发模式(基于HTTP)
⑴C/S?称Client/Server或客户/服务器模式。服务器通常采??性能的PC、?作站或?型机,客户端
需要安装专?的客户端软件。如QQ,微信等软件
B/S是Brower/Server的缩写,客户机上只要安装?个浏览器(Browser)。Browser/Server是建?在
?域?的基础上的.
⑵CS和BS结构各?的优、缺点
1) C/S的优点是能充分发挥客户端PC的处理能?,---很多?作可以在客户端处理后再提交给服务器---。对应
的优点就是客户端响应速度快。
缺点主要为 客户端需要安装专?的客户端软件。?先涉及到安装的?作量,其次任何?台电脑出问题,如病毒、
硬件损坏,都需要进?安装或维护。特别是有很多分部或专卖店的情况,不是?作量的问题,?是路程
的问题。还有,系统软件升级时,每?台客户机需要重新安装,其维护和升级成本?常?。
2) B/S最?的优点就是可以在任何地?进?操作?不?安装任何专?的软件。只要有?台能上?的电脑就
能使?,客户端零维护。系统的扩展?常容易,只要能上?,就可以使?了。甚?可以在线申请,通过
公司内部的安全认证(如CA证书)后,不需要?的参与,系统可以?动分配给?户?个账号进?系统。
Web服务器的分类
Web服务器是运?及发布Web应?的容器,只有将开发的Web项?放置到该容器中,才能使?络中的所
有?户通过浏览器进?访问。开发Java Web应?所采?的服务器主要是与JSP/Servlet兼容的Web服务
器,?较常?的有Tomcat、Resin、JBoss、WebSphere 和 WebLogic 等
Tomcat 服务器
?前最为流?的Tomcat服务器是Apache-Jarkarta开源项?中的?个?项?,是?个?型、轻量级
的?持JSP和Servlet 技术的Web服务器,也是初学者学习开发JSP应?的?选
Resin 服务器
Resin是Caucho公司的产品,是?个?常流?的?持Servlet和JSP的服务器,速度?常快。Resin本
身包含了?个?持HTML的Web服务器,这使它不仅可以显示动态内容,?且显示静态内容的能?也毫
不逊?,因此许多?站都是使?Resin服务器构建
JBoss服务器
JBoss是?个种遵从JavaEE规范的、开放源代码的、纯Java的EJB服务器,对于J2EE有很好的?持。
JBoss采?JML API实现软件模块的集成与管理,其核?服务?是提供EJB服务器,不包含Servlet和JSP的
Web容器,不过它可以和Tomcat完美结合
WebSphere 服务器
WebSphere是IBM公司的产品,可进?步细分为 WebSphere Performance Pack、Cache
Manager 和WebSphere Application Server等系列,其中WebSphere Application Server 是基于Java
的应?环境,可以运?于 Sun Solaris、Windows NT 等多种操作系统平台,?于建?、部署和管理
Internet和Intranet Web应?程序。
WebLogic 服务器
WebLogic 是BEA公司的产品(现在已经被Oracle收购),可进?步细分为 WebLogic Server、
WebLogic Enterprise 和 WebLogic Portal 等系列,其中 WebLogic Server 的功能特别强?。WebLogic
?持企业级的、多层次的和完全分布式的Web应?,并且服务器的配置简单、界?友好。对于那些正在
寻求能够提供Java平台所拥有的?切应?服务器的?户来说,WebLogic是?个?分理想的选择
web服务器、Web中间件和Web容器的区别_谢公子的博客-CSDN博客_web服务器和web容器的区别
Tomcat
目录
1、bin:该?录下存放的是?进制可执??件,如果是安装版,那么这个?录下会有两个exe?件:
tomcat9.exe、tomcat9w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗?启动Tomcat;如
果是解压版,那么会有startup.bat和shutdown.bat?件,startup.bat?来启动Tomcat,但需要JDK的
配置,shutdown.bat?来停?Tomcat;
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:对所有应?的统?配置,通常我们不会去配置它。
3、lib:Tomcat的类库,??是??堆jar?件。如果需要添加Tomcat依赖的jar?件,可以把它放到这
个?录中,当然也可以把应?依赖的jar?件放到这个?录中,这个?录中的jar所有项?都可以共享之,
但这样你的应?放到其他Tomcat下时就不能再共享这个?录下的Jar包了,所以建议只把Tomcat需要的
Jar包放到这个?录下;
4、logs:这个?录中都是?志?件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那
么异常也会记录在?志?件中。
5、temp:存放Tomcat的临时?件,这个?录下的东?可以在停?Tomcat后删除!
6、webapps:存放web项?的?录,其中每个?件夹都是?个项?;如果这个?录下已经存在了?
录,那么都是tomcat?带的项?。其中ROOT是?个特殊的项?,在地址栏中没有给出项??录时,对
应的就是ROOT项?。
http://localhost:8080/examples,进?示例项?。其中examples就是项?名,即?件夹的名字。
7、work:运?时?成的?件,最终运?的?件都在这?。通过webapps中的项??成的!可以把这个
?录下的内容删除,再次运?时会?再次?成work?录。当客户端?户访问?个JSP?件时,Tomcat会
通过JSP?成Java?件,然后再编译Java?件?成class?件,?成的java和class?件都会存放到这个?录
下。
8、LICENSE:许可证。
9、NOTICE:说明?件。
通过url访问服务器: http://服务器的ip地址:端口号/项目名/被访问的页面?
示例:http://localhost:8080/test1?
注: (1)启动tomcat后,tomcat会加载部署在服务器端的所有项目?(2) 浏览器访问的页面是服务器端的页面,服务器的项目和工作空间的项目要保持?致
Tomcat服务器原理解析_Amzaing007的博客-CSDN博客
修改端口号
修改配置文件:/conf/server.xml
<Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443" />
如果port改为80,则访问tomcat url可不用指定port
tomcat管理项目
给tomcat增加管理员信息: 配置conf/tomcat-users.xml
<tomcat-users>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>
注:tomcat启动的时候会加载webapps下的所有项目,使用管理员权限可以管理(开关)特定的项目
Idea配置Tomcat
setting下Build,Execute and Deployment中的Application Servers添加Tomcat文件夹(包含bin)
idea中artifacts、facets、modules是什么意思? - 超人不会飞1996 - 博客园
Intellij IDEA使用(十五)—— 如何在IDEA中一个Tomcat启动多个项目和多个Tomcat启动多个项目_云卷云舒的架构师之路-CSDN博客_idea一个tomcat运行多个web项目
IDEA中使用tomcat发布多个war包_AcresJoe-CSDN博客_idea 部署多个war
|