网页可分为静态网页与动态网页两种形式。在介绍这两种网页之前,我们先来了解一下网络构成中的服务器(Server)与客户机(Client)。
服务器是安装有服务器软件并且可以向客户机提供网页浏览、数据库查询等服务的设备。 而客户机则与之相反,它通过客户端软件(如浏览器)从服务器上获得网页浏览、软件下载等服务。 简单地讲服务器就是服务提供者,而客户机则是服务获得者。静态网页
在网站设计中,静态网页是网站建设的基础,纯粹 HTML 格式的网页通常被称为“静态网页”,静态网页是标准的 HTML 文件,它的文件扩展名是 .htm、.html,可以包含文本、图像、声音、FLASH 动画、客户端脚本和 ActiveX 控件等。
静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。静态网页相对更新起来比较麻烦,适用于一般更新较少的展示型网站。
容易误解的是,静态网页并不是静止不动的,它也可以出现各种动态的效果,如 GIF 动画、FLASH、滚动字幕等。
静态网页服务的工作方式: 实现首先需要客户机通过浏览器向服务器发出请求,然后服务器接受请求并根据请求从服务器端的网页中找到对应的页面,最后返回给客户机浏览器。这个过程中所发送的页面都是事先编辑好的,它并不能自动生成。
静态网页的实现模式
图1:静态网页的实现模式
静态网页有以下特点:
1. **静态网页不能自动更新**,若要对静态页面进行更新,就要重新编写 HTML 源文件,然后再上传。因此静态网页的制作和维护工作量相当大。
2. **静态网页的内容不随浏览用户、浏览时间等条件的变化而变化**。无论何人、何时、何地浏览网页,它的内容都是一成不变的(不包括使用
JavaScript 实现的一些简单特效)。
4. **静态网页一经发布,无论浏览者浏览与否,它都是真实存在的一个文件**,都对应一个 URL(文件在网上的地址)。
5. **用静态网页实现人机交互有相当大的局限性**。由于不能动态生成页面,所以用静态网页来实现人机交互是很困难的,在功能上有很大限制。
动态页面
动态网页是基本的 HTML 语法规范与 PHP、Java、Python 等程序语言、数据库等多种技术的融合, 以期实现对网站内容和风格的高效、动态、交互式的管理。因此,可以理解为 **凡是结合了 HTML 以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。**
也就是说,动态网页相对于静态网页来说,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
动态网页与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术(如 PHP、JSP 等)生成的网页都可以称为动态网页。
与静态网页相比,动态网页有以下特点:
1. 动态网页在服务器端运行,客户机上看到的只是它的返回结果,不可能看到它的源文件。而静态网页则只能通过服务器把网页文件原封不动地传给客户机,本身不进行任何处理。
不同的人、不同时间、不同地点浏览同一个动态网页,根据代码处理结果不同,会返回不同的内容。
2. 动态网页只有经客户浏览时才会返回一个完整的网页,而其本身并不是一个独立存在于服务器的网页文件。
3. 与静态网页相比,动态网页更容易实现人机交互。与数据库相联系,能实现更为强大的功能。
由动态网页构建的网站维护起来比由静态网页构建的网站容易,只需要更新调用的数据(如数据库内容)即可。
与静态网页的实现方法不同,动态网页服务的实现首先需要客户机向服务器发送请求,然后服务器根据用户请求把动态网页内部的代码先在服务器上进行相应的处理,最后服务器把生成的结果发送给客户机,如下图所示:
动态网页与传统网页的区别 1. 更新和维护
静态网页内容一经发布到网站服务器上,无论是否有用户访问,
这些网页内容都是保存在网站服务器上的。如果要修改网页的内容,就必须修改其源文件,
然后重新上传到服务器上。静态网页没有数据库的支持,
当网站信息量很大的时候网页的制作和维护都很困难。
动态网页可以根据不同的用户请求,时间或者环境的需求动态的生成不同的网页内容,并且动态网页一般以数据库技术为基础,可以大大降低网站维护的工作量。
2. 交互性
静态网页由于很多内容都是固定的,在功能方面有很大的限制,所以交互性较差。
动态网页则可以实现更多的功能,如用户的登录、注册、查询等。
3. 响应速度 静态网页内容相对固定,容易被搜索引擎检索,且不需要连接数据库,因此响应速度较快。
动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页,
其中涉及到数据的连接访问和查询等一系列过程,所以响应速度相对较慢。
2. 简述 Webl.0 和 Web2.0 的区别。
web1.0和web2.0的区别
**
两者的本质区别在于:Web1.0 的主要是在于用户通过浏览器获取信息。Web2.0 则更注重用户的交互作用。
**
两者的区别:
Web1.0 的主要特点在于用户通过浏览器获取信息。Web2.0 中用户既是网站内容的浏览者, 也是网站内容的制造者。Web2.0 是相对Web1.0 的新的一类互联网应用的统称。 web2是大家共同创作,共同分享知识,重在在普通用户也是网站建设的一个成员。 与web1.0网站单项信息发布的模式不同,web2.0网站的内容通常是用户发布的, 使得用户既是网站内容的浏览者也是网站内容的制造者,这也就意味着web2.0网站为用户 提供了更多参与的机会,例如博客网站和wiki就是典型的用户创造内容的指导思想, 而tag技术(用户设置标签)将传统网站中的信息分类工作直接交给用户来完成。 Web1.0:用户只是浏览者、以内容为中心、广播化;精英文化。 Web2.0:用户可读写、个性化服务、社会互联、以人为本;草根文化、长尾理论、六度分隔。 总结: Web2.0的发展说明在互联网上的每一个用户不再仅仅是互联网的读者,同时也成为互联网的作者。 在模式上由简单“读”向“写”以及“共同建设”发展;由被动地接收互联网信息向主动创造互联网信息发展,从而更加人性化!3. 简述 GET 和 POST 方法的区别。
首先说这两种方法都是HTTP的请求方法,
是对服务器本身发起请求,都是“告知服务器意图的 HTTP 方法”
- GET :获取资源 GET 方法用来请求访问已被 URI 识别的资源。指定的资源经服务器 端解析后返回响应内容。也就是说,如果请求的资源是文本,那就保 持原样返回;如果是像 CGI(Common Gateway Interface,通用网关接 口)那样的程序,则返回经过执行后的输出结果。 - POST:传输实体主体 POST 方法用来传输实体的主体。 虽然用 GET 方法也可以传输实体的主体,但一般不用 GET 方法进行 传输,而是用 POST 方法。虽说 POST 的功能与 GET 很相似,但 POST 的主要目的并不是获取响应的主体内容。
!!!!!重要!!!!! 从标准上来看,GET 和 POST 的区别如下: GET 用于获取信息,是无副作用的,是幂等的,且可缓存 POST 用于修改服务器上的数据,有副作用,非幂等,不可缓存
GET、POST 请求报文上的区别 GET 和 POST 只是 HTTP 协议中两种请求方式(异曲同工),而 HTTP 协议是基于 TCP/IP 的应用层协议,无论 GET 还是 POST,用的都是同一个传输层协议,所以在传输上,没有区别。 报文格式上,不带参数时,最大区别就是第一行方法名不同, 仅仅是报文的几个字符不同而已 POST 方法请求报文第一行是这样的 POST /url HTTP/1.1 GET 方法请求报文第一行是这样的 GET /url HTTP/1.1 带参数时报文的区别呢? 在约定中,GET 方法的参数应该放在 url 中,POST 方法参数应该放在 body 中 举个例子,如果参数是 name=Javanx, age=25。
GET报文
GET /updateInfo?name=Javanx&age=25 HTTP/1.1 Host: localhost
POST报文
POST /updateInfo HTTP/1.1 Host: localhost Content-Type:application/x-www-form-urlencoded name=Javanx&age=25关于他们的一些问题
1. GET 方法参数写法是固定的吗? 在约定中,我们的参数是写在 ? 后面,用 & 分割。 我们知道,解析报文的过程是通过获取 TCP 数据,用正则等工具从数据中获取 Header 和 Body,从而提取参数。 比如header请求头中添加token,来验证用户是否登录等权限问题。 也就是说,我们可以自己约定参数的写法,只要服务端能够解释出来就行,万变不离其宗。 2. GET 方法的长度限制是怎么回事? 网络上都会提到浏览器地址栏输入的参数是有限的。 首先说明一点,HTTP 协议没有 Body 和 URL 的长度限制,对 URL 限制的大多是浏览器和服务器的原因。 浏览器原因就不说了,服务器是因为处理长 URL 要消耗比较多的资源, 为了性能和安全(防止恶意构造长 URL 来攻击)考虑,会给 URL 长度加限制。 3. POST 方法比 GET 方法安全? 有人说POST 比 GET 安全,因为数据在地址栏上不可见。 然而,从传输的角度来说,他们都是不安全的,因为 HTTP 在网络上是明文传输的, 只要在网络节点上捉包,就能完整地获取数据报文。 要想安全传输,就只有加密,也就是 HTTPS。4. 安装tomcat8,配置服务启动脚本,部署jpress应用。 源码安装
首先你如果想安装tomcat服务,得有JDK开发环境,这里为开发者准备了JDK开发包
链接:https://pan.baidu.com/s/1r8VlMP1j3zV3vtz8UbxyGg?pwd=jqgt
提取码:jqgt
–来自百度网盘超级会员V2的分享
将JDK文件上传至虚拟机的文件夹中,然后本地安装
yum localinstall jdk-8u261-linux-x64.rpm
自动会安装到/usr/java目录下面
检查是否安装好:图形化界面输入:
java -version
tomcat下载链接:(官网下载)
wget -c https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz
grep 53 /etc/passwd
groupadd -r -g 53 tomcat
useradd -u 53 -g 53 tomcat -r -c “Apache tomcat” -s /sbin/nologin -d /usr/local/tomcat
#做个软链接
tar xf apache-tomcat-8.5.11.tar.gz -C /usr/local/
ln -sv /usr/local/apache-tomcat-8.5.11/ /usr/local/tomcat
chgrp -R tomcat /usr/local/tomcat/*
vim /usr/lib/systemd/system//tomcat.service
[Unit] Description=Apache Tomcat Web Application Container After=syslog.target network.target [Service] Type=forking #如果加了有tomcat.pid文件最好删掉 #因为自己做的时候曾经出现一个问题 #Daemon never wrote its PID file. Failing. #也就是linux tomcat 守护进程从未写入其 PID 文件 #删了也没有对tomcat服务有多大影响 Environment="JAVA_HOME"=/usr/java/jdk1.8.0_261-amd64 #注意这个JAVA_HOME是要安装你对应的地方 # 不管以什么方式启动tomcat,都要注意写参数时,JAVA_HOME这个位置是否对应 Environment="CATALINA_HOME"=/usr/local/tomcat #这个tomcat的位置也是 ExecStart=/usr/local/tomcat/bin/catalina.sh start ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID User=tomcat Group=tomcat PrivateTmp=true [Install] WantedBy=multi-user.target
systemctl darmon-reload
systemctl start tomcat
systemctl enable tomcat
然后可以进行访问了
解决tomcat启动慢:
部署Tomcat web 管理功能(生产环境中千万不要,如果一旦密码泄露,后果不堪设想):!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Tomcat管理功能用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。
在默认情况下是处于禁用状态的。如果需要开启这个功能,就需要配置管理用户。
**
vim /usr/local/tomcat/conf/tomcat-users.xml
#在 #前面加上以上几行,注意,不要添加到注释里面去。
vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
#修改allow部分
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
#修改的是allow部分
systemctl restart tomcat
1)点击右上角的Host Manager ,进行可以部署主机。而这里暂时不部署虚拟主机
2)点击右上角的Server status ,进行服务器状态管理
然后输入用户名、密码(都是tomcat,跟上面那个users.xml配置文件的一样)
然后就能进入到图形化web管理界面了
点击左上角的List Applications,就可以部署WEB应用了,可以进行任意操作
总之,部署了这个Tomcat Web管理界面,就很不安全了。
切记,生产环境千万不要去配置。
曾经华润集团开启了调试功能之后,没有及时关闭debug日志,导致后来日志大小达到50、60G
对于日志文件来说,一般都不会很大,查看起来非常困难,这明显已经很难排查问题。
而且也没有对日志进行切割。一旦出现问题,很难定位问题所在
下载链接:去rpmfind .net 搜索关键词cronolog
http://www.rpmfind.net/linux/epel/7/x86_64/Packages/c/cronolog-1.6.2-14.el7.x86_64.rpm
[root@localhost usr]#yum localinstall http://www.rpmfind.net/linux/epel/7/x86_64/Packages/c/cronolog-1.6.2-14.el7.x86_64.rpm [root@localhost usr]# whereis cronolog cronolog: /usr/sbin/cronolog /usr/share/man/man1/cronolog.1m.gz
那接下来怎么用呢
第一步需要编辑这个文件
大概在417行,把 touch "$CATALINA_OUT"这一行注释
touch "$CATALINA_OUT" #前面加注释
第二步在上面那个文件中,大概430行和431行都要修改
将
org.apache.catalina.startup.Bootstrap "$@" start
>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
改为
org.apache.catalina.startup.Bootstrap "$@" start 2>&1
| /usr/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out>>/dev/null &
#注意这个改的那一行是安装cronolog的文件位置
第三步,重启服务
接下来对比一下重启前后tomcat日志的变化
重启前只有一个catalina.out 一个日志文件
重启之后,多了一系列文件
catalina.2022-06-09.log
catalina.2022-06-09.out
部署jpress应用
有两种部署放肆,
一种是图形化界面:
点击那个Manager App
在那个WAR file to deploy(部署WAR包),加入本地的jpress WAR包,点击deploy就部署完了。部署完了,页面会自动跳转,可以进行对比,多了一个jpress-web-newest组件,这就是jrepss。然后,就可以对这个jpress进行任意操作,比如停止,重启、取消部署等等。
这时候,我们可以看看原来在tomcat的目录下面发生什么变化
[root@bbs ~]# cd /usr/local/tomcat/ bin/ conf/ lib/ logs/ temp/ webapps/ work/ [root@bbs ~]# cd /usr/local/tomcat/webapps/ [root@bbs webapps]# ll total 20320 drwxr-x---. 14 tomcat tomcat 4096 Jun 8 11:40 docs drwxr-x---. 6 tomcat tomcat 83 Jun 8 11:40 examples drwxr-x---. 5 tomcat tomcat 87 Jun 8 11:40 host-manager #在tomcat开启的情况下,这个WAR包在传进虚拟机的时候会自动解压,会自动部署 drwxr-x---. 7 tomcat tomcat 102 Jun 11 00:44 jpress-web-newest -rw-r-----. 1 tomcat tomcat 20797024 Jun 11 00:44 jpress-web-newest.war drwxr-x---. 5 tomcat tomcat 103 Jun 8 11:40 manager drwxr-x---. 3 tomcat tomcat 4096 Jun 8 11:40 ROOT [root@bbs webapps]#
第二种方式:
就是我们直接把jpress的WAR包,传进tomcat部署web应用的目录底下,然后那个WAR包会自动解压。在重启tomcat后,可以在图形化界面看到已经部署



