Tomcat&Http协议

Tomcat&Http协议

1.web资源

web在计算机领域指网络,我们可以在网络中获取各种资源,资源的存放之处就是网站。这些网站中的资源,可以分为静态和动态资源。

  • 静态资源:

    静态资源指,网站中提供给人们的一成不变的资源,如新闻,各种文档等,作为开发者,html,css,js,图片,多媒体资料等都成为静态资源。

  • 动态资源:

    动态资源指,网站中提供给人们展示的资源是由程序产生的,在不同时间或者权限不同的人,所看到的内容都是不一样的,比如编写的jsp,servlet,php等都是动态资源,也可以说是逻辑代码。

2.系统结构

在Java工程中,无论是产品还是项目都有系统架构。

  • 基础结构:C/S结构,B/S结构
  • 技术选型划分:MVC模型和三层架构
  • 部署方式划分:一体化架构,垂直拆分架构,分布式架构,微服务架构
2.1 C/S架构

客户端——服务器模式。

在这里插入图片描述

2.2 B/S架构

浏览器——服务器模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t3E6mcqF-1597298164563)(C:\Users\lee\AppData\Roaming\Typora\typora-user-images\image-20200812153936315.png)]

2.3 两种架构比较

两种结构的区别

第一:硬件环境不同,C/S通常是建立在专用的网络或小范围的网络环境上(即局域网),且必须要安装客户端。而B/S是建立在广域网上的,适应范围强,通常有操作系统和浏览器就行。

第二:C/S结构比B/S结构更安全,因为用户群相对固定,对信息的保护更强。

第三:B/S结构维护升级比较简单,而C/S结构维护升级相对困难。

优劣

1 C/S:是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。

2 B/S:总体拥有成本低、维护方便、 分布性强、开发简单,可以不用安装任何专门的软件就能 实现在任何地方进行操作,客户端零维护,系统的扩展非常容易,只要有一台能上网的电脑就能使用。

3.Tomcat

服务器可以指性能较高的特殊计算机,也可以指用于部署网站的应用。一般说的服务器是指web服务器,它的本质就是一个软件,作用就是发布应用。

服务器名称说明
weblogic实现了javaEE规范,重量级服务器,又称为javaEE容器
websphereAS实现了javaEE规范,重量级服务器。
JBOSSAS实现了JavaEE规范,重量级服务器。免费的。
Tomcat实现了jsp/servlet规范,是一个轻量级服务器,开源免费。
3.1 Tomcat各个版本所需要的支持

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uootQkSa-1597298164566)(C:\Users\lee\AppData\Roaming\Typora\typora-user-images\image-20200812154743141.png)]

3.2 Tomcat目录结构详解

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q6CTp2bB-1597298164569)(C:\Users\lee\AppData\Roaming\Typora\typora-user-images\image-20200812154900970.png)]

3.3 安装Tomcat过程中可能出现的问题
  • 一闪而过, 因为JAVA_HOME没有配置好

  • 端口被占用:

    • 杀死那个占用端口的进程
      • cmd —> netstat -ano 查进程编号
      • 打开任务管理器, 找到进程编号对应的程序结束掉即可
    • 修改自己的端口, 在conf/server.xml中

    注意: http协议的默认端口是80

3.4 在Tomcat中发布项目的三种方式

  1. 直接将项目拷贝到Tomcat的webapps目录中**(最常用)**

    • 优点:非常简洁
    • 缺点:项目较大的话,需要较长时间拷贝
    • 解决方案:将项目打成war包,Tomcat可以自动解析war包
  2. 在Tomcat中的conf/server.xml中添加项目位置,需要在server.xml的标签内添加如下内容:

    (不常用)

    path(虚拟路径):配置真实位置的别称, 起别称,是因为项目要通过浏览器访问,而浏览器不能输入盘符。

    docBase:配置项目的真实位置。

  • 缺点:server.xml为Tomcat的核心配置,一旦修改错误会造成服务器崩溃。
  1. 在conf/localhost/catalina下创建任意名称的xml文件,这个xml的文件名就是访问项目的虚拟路径。(idea中自动创建)(较常用)

    在xml中配置如下内容:

4.HTTP协议

HTTP的全称是:Hyper Text Transfer Protocol,意为超文本传输协议。指服务器和客户端之间交互必须遵循的的一问一答的规则。这个规则也称:问答机制,握手机制。HTTP协议是有W3C组织管理和维护

规范了请求和响应内容的类型和格式。

  • 底层是基于tcp/ip
  • 请求/响应模式,一次请求对应一次响应
  • 默认端口是 80
  • 无状态,多次请求之间互相不干扰
4.1 请求部分
  1. 请求行:永远位于请求的第一行
  2. 请求头:从第二行开始,到第一个空行结束
  3. 请求体:从第一个空行后开始,到正文结束

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n4VeitD8-1597298164571)(C:\Users\lee\AppData\Roaming\Typora\typora-user-images\image-20200812164425091.png)]

  • 请求行详解

请求行:GET /myapp/2.html HTTP/1.1

内容说明
GET请求的方式。(还有POST)
/myapp/2.html请求的资源。
HTTP/1.1使用的协议,及协议的版本。
  • 请求头详解
内容说明
Accept告知服务器,客户浏览器所支持的MIME类型。
Accept-Encoding告知服务器,客户浏览器所支持的压缩编码格式。最常用的就是gzip压缩。
Accept-Language告知服务器,客户浏览器所支持的语言。一般都是zh_CN或en_US等。
Referer告知服务器,当前请求的来源。 只有当前请求有来源的时候,才有这个消息头。从地址栏输入的没有来源。 作用:1 投放广告 2 防盗链
Content-Type告知服务器,请求正文的MIME类型。
Content-Length告知服务器,请求正文的长度。
User-Agent浏览器相关信息
Connection: Keep-Alive连接的状态:保持连接
If-Modified-Since告知服务器,客户浏览器缓存文件的最后修改时间。
Cookie(**)会话管理相关,非常的重要。
  • 请求正文详解

    (1)只有post请求方式,才有请求的正文。get方式的正文在地址栏中。

    (2)表单的输入域有name属性才会被提交,不分get和post的请求方式。

    (3)表单的enctype属性取值决定了请求正文的体现形式,概述的含义是:请求正文的MIME编码类型。

内容说明
Accept告知服务器,客户浏览器所支持的MIME类型。
Accept-Encoding告知服务器,客户浏览器所支持的压缩编码格式。最常用的就是gzip压缩。
Accept-Language告知服务器,客户浏览器所支持的语言。一般都是zh_CN或en_US等。
Referer告知服务器,当前请求的来源。 只有当前请求有来源的时候,才有这个消息头。从地址栏输入的没有来源。 作用:1 投放广告 2 防盗链
Content-Type告知服务器,请求正文的MIME类型。
Content-Length告知服务器,请求正文的长度。
User-Agent浏览器相关信息
Connection: Keep-Alive连接的状态:保持连接
If-Modified-Since告知服务器,客户浏览器缓存文件的最后修改时间。
Cookie(**)会话管理相关,非常的重要。
4.2 相应部分
  1. 响应行:永远位于响应的第一行
  2. 响应头:从第二行开始,到第一个空行结束
  3. 响应体:从第一个空行后开始,到正文结束

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Ug4T3Se-1597298164574)(C:\Users\lee\AppData\Roaming\Typora\typora-user-images\image-20200812164705893.png)]

  • 响应行详解

响应行:HTTP/1.1 200 OK

内容说明
HTTP/1.1使用协议的版本。
200响应状态码
OK状态码描述

常用状态码介绍:

状态码说明
200一切都OK
302/307请求重定向(客户端行为,两次请求,地址栏发生改变)
304请求资源未发生变化,使用缓存
404请求资源未找到
500服务器错误
  • 响应头详解
响应头说明
Location请求重定向的地址,常与302,307配合使用。
Server服务器相关信息。
Content-Type告知客户浏览器,响应正文的MIME类型。
Content-Length告知客户浏览器,响应正文的长度。
Content-Encoding告知客户浏览器,响应正文使用的压缩编码格式。常用的gzip压缩。
Content-Language告知客户浏览器,响应正文的语言。zh_CN或en_US等等。
Content-Disposition告知客户浏览器,以下载的方式打开响应正文。
Refresh定时刷新
Last-Modified服务器资源的最后修改时间。
Set-Cookie(*******)会话管理相关,非常的重要
Expires:-1服务器资源到客户浏览器后的缓存时间
Catch-Control: no-catch不要缓存,//针对http协议1.1版本
Pragma:no-catch不要缓存,//针对http协议1.0版本
  • 响应正文详解

就是服务器相应给浏览器的源文件

4.3 请求方式的区别
  1. get

    • 默认参数在请求行中,默认地址栏上显示
    • 有大小写限制
    • 较为不安全
  2. post

    • 默认参数在请求体中,,默认不会显示在地址栏中
    • 没有数据大小限制(下载或者上传一定要使用post方式)
    • 较为安全
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值