web开发常识(http协议以及JAVA WEB服务器的配置) - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 网站建设 >

web开发常识(http协议以及JAVA WEB服务器的配置)

发表时间:2017-1-13

发布人:葵宇科技

浏览次数:48

JavaWeb服务器的配置使用

WEB开发的前景

软件开发的两种架构:B/S 和 C/S

随着网络带宽的不断提升,云计算概念的提出,浏览器只要足够强大,c/s架构立马就会被淘汰,不仅c/s架构会被淘汰,软件最终都会消失、操作系统都可以没有,最终将会是b/s架构的天下,也就是浏览器+搜索引擎的天下。所有现在桌面软件提供的功能,最后都由网站提供,也就是说,将来打开电脑就是一个浏览器,想要什么服务,通过搜索引擎一找,就可以在网上找到相应的服务,用就是了。所以web开发人员是现在最流行的岗位。


WEB 开发的相关知识

WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。 Internet上供外界访问的web资源分为:
  • 静态web资源(如HTML页面):指web页面中供人们浏览的数据始终是不变的。
  • 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
静态web资源开发技术: HTML 常用的动态web资源开发技术:
  • JSP/Servlet、ASP、PHP、Python等
  • 在JAVA中,动态的web资源开发技术统称为Javaweb。
WEB系统是怎样通信的?

WEB开发中的服务器:

服务器原理:网络编程 服务器的概念:
  • 硬件:就是一台电脑
  • 软件:需要在这台电脑上安装服务器的软件
  • 如果一台电脑上安装了服务器的软件的话,那么这台电脑就可以成为WEB服务器。
访问:
  • IP+端口号
  • 如果是域名—>解析成IP地址—>www.baidu.com
  • 如果默认端口是80 的可以不写
常见的WEB服务器: WebLogic是BEA公司的产品,是目前应用最广泛的WEB服务器,支持JavaEES规范,而且不断地完善适应新的开发求,启动界面如下图:

另一个常用的WEB服务器是IBM公司的WebSphere,支持J2EE规范,启动界面如下:

在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的WEB服务器:Tomcat,该服务器支持全部的JSP以及Servlet规范,启动界面如下:

Tomcat服务器

Tomcat官方站点:http://jakarta.apache.org
获取Tomcat安装程序包
tar.gz(zip)文件是Linux操作系统下的安装版本
exe文件是Windows系统下的安装版本
zip文件是Windows系统下的压缩版本
安装Tomcat --- 配置JAVA_HOME

注意事项: Tomcat的服务器不能安装或解压放到含有中文和空格的路径的文件夹内。
如果想要启动服务器,必须安装java和配置JAVA_HOME。
可以在startup.bat的文件中最后一行加入暂停字符:pause

双击 bin 目录下的 startup.bat 文件
输入 http://localhost:8080/,显示如下界面代表安装成功


Tomcat常见的启动问题:

(1)JAVA_HOME 环境变量
  • 在Windows中设置JAVA_HOME环境变量
  • JAVA_HOME路径必须是JDK不可以是JRE
(2)端口占用问题
  • WindowsXP使用Fport工具
  • win7使用DOS命令netstat -ano
  • win7自带World wide web publish IIS 服务默认占用端口80
(3)CATALINA_HOME环境变量的设置问题(主要用于在DOS命令中启动Tomcat)

Tomcat的端口占用问题:

同时启动了多个Tomcat(MyEclipse) (1)将占用了的8080端口的程序结束掉。
  • 如果是XP系统,可以使用工具Fport.exe来找到占用8080端口的应用程序,在任务管理器中结束该程序。
  • 通用版:在cmd命令窗口输入netstat -ano,找到占用8080端口的程序。因为没有程序的名称,通过PID结束程序。
(2)修改Tomcat自己的端口号。
  • 修改Tomcat目录下的server.xml文件中的端口配置,找到port项,修改端口,完成后重启Tomcat服务器。
  • 有系统自带的IIS服务,占用80端口。停止该服务。
  • win7 自带 World wide web publish IIS服务 默认占用端口80 可以通过输入services.msc找到该服务,停止即可。极个别的系统会有系统内核占用80端口的,通过资料中提供的文件解决该问题
Tomcat服务器与Servlet版本关系:
Tomcat的目录结构:

WEB应用程序

(1)WEB应用程序指供浏览器访问的程序,通常也称为WEB应用。 (2)一个web应用由多个静态web资源和动态web资源组成,如:
  • html、css、js文件 --- 静态web资源
  • Jsp文件、java程序、支持jar包、 ---- 动态web资源
  • 配置文件等等…..
  • 组成web应用的这些文件通常我们会使用一个目录组织,这个目录称之为web应用所在目录(网站的根目录)
(3)WEB应用开发好后,若想供外界访问,需要把web应用所在的目录交给web服务器管理,这个过程称之为虚拟目录的映射。 (4)开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器报错。web应用(网站目录)的组成结构如下:

使用MyEclipse配置Tomcat

  • 在window下找到servers中的tomcat( window -- 选项 -- MyEclipse -- servers -- 选择tomcat -- 选择Enable -- 选择tomcat根目录)
  • 选择相应的版本后,配置本地的tomcat
  • 再配置本地的JDK(可选)
  • 配置成功后启动服务器
  • 在myeclipse中创建web项目,部署到tomcat中,启动服务器。
  • WebRoot目录变成了虚拟路径即访问路径了(虚拟路径默认和项目名称是相同的,不用去修改)
  • 如果直接复制项目,需要修改虚拟路径(项目上右键--选择属性 -- MyEclipse -- web 修改虚拟路径)
  • 扩展 window -- show view -- servers

Tomcat管理员的配置

在Tomcat中配置管理员主要是给用户使用的。 可以在tomcat/conf/tomcat-user.xml中加入如下配置信息。 <role rolename="manager"> <user username="admin" password="admin" roles="manager">

虚拟目录的映射方式(如何部署WEB程序)

虚拟目录的映射有三种方式: (1)将项目复制到webapps目录下。即让Tomcat自动映射,Tomcat服务器会自动管理webapps目录下的所有的web应用,并把它映射成虚拟目录。换句话说,Tomcat服务器webapps目录下的web应用,外界可以直接访问。 (2)(通过配置虚拟路径的方式)直接修改配置文件,写到tomcat/conf/server.xml中 * 找到<Host>标签,配置到Host标签的中间。 * 目的:通过配置,配置访问路径,准确找到c:\bb的文件 *<Context docBase="文件夹的真实目录" path="虚拟路径(访问路径)"></Context> *<Context docBase="C:\bb" path="/itcast"></Context> *访问:http://localhost:80/itcast (3)自己编写一个配置文件(推荐使用) *自定义xxx.xml结尾文件,在$CATALINA_HOME/conf/[enginename]/[hostname] directory目录下 *把xxx当成虚拟(访问)路径 * 在XML的文件中编写。 *xml文件在哪个目录下? *$CATALINA_HOME/conf/[enginename]/[hostname] directory * 如果找引擎的名称和主机的名称,在server.xml中找到分别是<engine name="引擎名称">...</engine>和 <Host name="主机名称"></Host> 的节点即可 *tomcat/conf/Catalina/localhost/ccc.xml *ccc.xml的文件编写内容如下: *<Context docBase="C:\cc"></Context> *访问:http://localhost:80/ccc

Web系统通信详解:


配置虚拟主机: (1) 在一个tomcat服务器中可以放置多个网站<Host>,所谓配置虚拟主机,就是在tomcat服务器中配置一个网站。 (2)如需要在WEB服务器中配置一个网站,需要使用Host元素进行配置,例如:<Host name="site1" appBase="c:\app"></Host> (3)配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册 C:\WINDOWS\system32drivers\etc\hosts (4)缺省虚拟主机DefaultHost 访问网站全过程分析
1、在浏览器输入url地址
2、访问本机域名解析文件 hosts ======= c:\windows\system32\drivers\etc\
3、如果本机没有查找到域名,查找网络上DNS服务器
4、域名解析后,获得域名对应ip地址。根据ip和port访问网络上指定主机和服务


真实开发网站过程
1、开发网站
2、将网站发布web服务器上 (公网ip)
3、在DNS域名解析服务器上注册域名,和服务器ip绑定

实验:在本机上搭建百度虚拟主机 =========== 注意:默认端口必须设置80
1、抓取baidu主页
2、在c盘 新建虚拟主机目录 c:\baidu
3、在c:\baidu下新建 百度网站目录 website (复制网站页面到 website目录)
4、在conf/server.xml 配置虚拟主机
<Host name="www.baidu.com" appBase="C:\baidu"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
5、在本机 hosts文件添加
192.168.1.250 www.baidu.com
*** 测试 cmd中 ping www.baidu.com 测试hosts是否配置成功
6、将website配置 缺省网站 在<Host> 元素内部添加<Context> 元素
<Context path="" docBase="website" />
7、将baidu.htm 配置默认欢迎页面 conf/web.xml
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>baidu.htm</welcome-file>
</welcome-file-list>

使用MyEclipse开发动态web程序

什么是HTTP协议?

  • 客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,http协议用于定义客户端与web服务器通讯的格式。
  • 基于TCP连接的传输协议
  • 默认端口是80
  • 基于请求-相应模式的协议
  • 通过Telnet命令 快速了解HTTP协议
  • 安装IE浏览器插件HttpWatch,查看IE浏览器通过HTTP协议获取某个页面

使用telnet命令演示HTTP协议

  • 启动服务器
  • cmd> telnet localhost 80回车
  • telnet有一个乱码问题 解决乱码
  • 解决 Ctrl+] 回车
  • 注意:命令行中输入的内容不能写错,一旦写错了 不支持删除
  • GET /aa/1.html HTTP/1.1
  • host:localhost
  • 输入两次回车

HTTP协议简介

  • HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。
  • HTTP协议是学习JAVAWEB的基石,必须深入了解HTTP协议 才能管理和维护一些复杂的WEB站点。
  • HTTP协议的版本:HTTP/1.0 、HTTP/1.1

HTTP1.0和HTTP1.1的区别

  • HTTP/1.0是链接之后,马上断开
  • HTTP/1.1是链接之后,不会马上断开,还可以继续操作,一段时间不操作后,会自动断开。
  • 通过telnet命令可以很好的演示效果

HTTP请求

客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括以下内容: 一个请求行、若干请求头、以及实体内容,如下所示:
Web服务器通过客户端发送过来的这些请求信息,就可以确定向请求者回送什么资源,以及根据客户端的环境信息采用什么方式进行回送等。

HTTP请求的细节——请求行

请求行中的GET称之为请求方式,请求方式有:
  • POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT、CONNECT
  • 常用的有: GET、 POST
  • 用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。
不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:
  • 如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:
  • GET /mail/1.html?name=abc&password=xyz HTTP/1.1
  • GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
  • 如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。
1、请求行
GET /day4/img.html HTTP/1.1 分为三个部分:请求方式、资源路径、协议版本
HTTP请求方式定义8种,常用GET和POST两种

GET和POST区别?
1) 区分哪些是GET请求? 哪些POST请求?
GET:在浏览器直接输入URL、<a href=""> 、<form method="get" >
POST: <form method="post" >
2) GET请求数据位于请求行中 ,POST请求数据位于请求体中
GET /day4/form.html?username=zhangsan HTTP/1.1
POST /day4/form.html HTTP/1.1
...
username=lisi
3) GET请求数据在URL上显示,所有有长度限制,通常是1kb

HTTP请求的细节——消息头


Accept: text/html,image/* 客户端识别文件类型
Accept-Charset: ISO-8859-1 客户端字符集
Accept-Encoding: gzip 客户端支持编码类型 gzip 压缩格式
Accept-Language:zh-cn 客户端语言
Host: www.itcast.com:80 访问服务器地址
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT (重要) 和Last-Modified 一起使用 控制缓存
Referer: http://www.itcast.com/index.jsp (重要)代表当前网页的来源 防止盗链
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 浏览器类型(文件下载时,不同浏览器进行不同处理)
Connection: close/Keep-Alive 请求后连接是关闭还是保持
Date: Tue, 11 Jul 2000 18:23:51 GMT 请求时间

重点:If-Modified-Since、referer、User-Agent

盗链:A网站直接通过链接,访问B网站资源
防盗链原理,判断请求中referer信息
****** 使用URL 和 URLConnection 伪造客户端
//防盗链
String referer = request.getHeader("referer");
if(referer!=null && referer.equals("http://localhost:8080/day03/index.html")){
// 有效
response.setContentType("text/html;charset=gbk");
response.getWriter().println("笔记本1000元");
}else{
// 无效
response.setContentType("text/html;charset=gbk");
response.getWriter().println("盗链真无耻!");
}

//URL伪造
URL url = new URL("http://localhost:8080/day03/referer");
URLConnection conn =url.openConnection();
conn.setRequestProperty("referer", "http://localhost/day03/index.html");

byte[] buf = new byte[1024];
InputStream is = conn.getInputStream();
int len = is.read(buf);
System.out.println(new String(buf,0,len));

3、请求体
多个数据之间用&分隔
name=value&name=value&name=value...

HTTP响应

一个HTTP响应代表服务器向客户端回送的数据,它包括: 一个状态行、若干消息头、以及实体内容。
在一个HTTP响应中,WEB服务器通过响应向WEB客户端描述客户端的请求成功与否,以及它所发送的数据类型等一些信息,客户端通过这些信息,进而可以知道如何对数据进行处理。

HTTP响应的细节——状态行

状态行 格式:HTTP版本号 状态码 原因叙述<CRLF> 举例:HTTP/1.1 200 OK 状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数,响应状态码分为5类,如下所示: 状态码含义100~199表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程200~299表示成功接收请求并已完成整个处理过程,常用200300~399为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302、307和304400~499客户端的请求有错误,常用404500~599服务器端出现错误,常用500
HTTP/1.1 200 OK 协议版本、状态码、描述信息
Informational 1xx 信息不足, 请求无法处理 Successful 2xx 请求成功处理 Redirection 3xx 请求已经处理,还需要客户端有进一步操作 Client Error 4xx 客户端错误 Server Error 5xx 服务器端错误
200:请求成功处理,一切OK 302:请求重定向(A找B借钱,B通知A找C借钱,A找C借钱)A: 客户端 B、C:服务器 304:服务器端资源没有改动,通知客户端查找本地缓存 404:客户端访问资源不存在 500:服务器内部出错
HTTP响应细节——常用响应头

3) gzip压缩
工具-- internet选项 --- 设置 --查看文件
+ 0.000 ! 0.097 394 7553 GET 200 html http://localhost/


配置tomcat/conf/server.xml 在 Connector中配置 压缩


<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443“ compressableMimeType="text/html,text/xml,text/plain" compression="on"/>


+ 0.000 0.093 394 2715 GET 200 html http://localhost/


4) Tomcat默认缓存策略 If-Modified-Since Last-Modified 结合304 实现
5) 禁用缓存
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
防止浏览器不兼容,如果网页禁用缓存后,不会在 工具-- internet选项 --- 设置 --查看文件 产生缓存文件


相关案例查看更多