Javaweb基础(二)服务器和http

2017-08-19  本文已影响273人  贾里

一.Web概述

1.Web发展历史

原始年代1990-1992:
1990年,HTML标记语言的出现标志Web开发时代的到来.
B/S架构开始在之后的岁月中不断的发展壮大,攻城略地蚕食传统C/S的领域。如同所有的新生事物一样,在web的史前岁月,web的开发 技术在在html标记诞生后,无论是在服务端还客户端都缓慢的发展着,在相当长的一个时间内,它并未像今天这样辉煌,甚至于只是静态的文本标识.
关键字:HTML�技术特性:静态文本显示,表现力和交互能力不足。(hao123)
封建诸侯年代1993-1996:
1993年,NCSA提出了CGI1.0草案。Web开发终于迎来了它的第二次重大飞跃,伴随着CGI,带来Web的动态处理能力,CGI就是这个时代的国王。(服务器端动态生成内容)
1994年,PHP
1996年,ASP
关键字:CGI(Common Gateway Interface )(Perl&&C&&Python)
技术特性:实现了客户端和服务器端的动态交互, 在程序代码中写html标记,是面向过程的开发方式,用多进程运行
注:CGI是Web服务器端组件,都能产生Web动态页面输出
工业文明1996-1999:
1997年,Sun公司推出了Servlet规范。Java阵营终于迎来了自己的web英雄。
1998年JSP技术诞生,Servlet和JSP再加上JavaBean,让JavaWeb开发者同时拥有了类似CGI程序的集中处理功能和类似于PHP 的HTML嵌入功能,此外,Java的运行编译技术也大提高了Servlet和JSP的执行效率
1998年,Sun发布了EJB1.0标准.
1999年,Sun正式发布了J2EE的第一个版本,紧接着,遵循J2EE,为企业级应用提供支持平台的各类应用服务器争先恐后的涌现出来(WebSphere,WebLogic,JBoss),(同时2001微软发布了ASP.NET技术)


J2EE/JavaEE是企业级开发的领头羊!

2.CS/BS

(1)软件的两种架构形式:
C/S: Client/Servler:客户端/服务器架构.
B/S: Browser/Server:浏览器/服务器架构.

C/S: 直接运行在电脑桌面的程序(需要安装).
开发CS的技术:Java AWT/Swing,Delphi,VB,VC,C#等.

B/S:通过浏览器访问的程序(Web应用).
开发BS的技术:JSP,PHP,ASP等.


我们把传统的BS架构称之为:瘦客户端.
富客户端开发:弥补了传统的BS在界面上不够友好的问题.

3.Web服务器

BS架构的应用(Web应用),必须使用服务器,我们开发的应用是运行在服务器里面的.
(1)服务器:

(2)JavaWeb中服务器的分类:

(3)Tomcat服务器:
Apache组织提供的开源的,由Java语言编写的,实现了JavaEE中部分的规范.
解析JSP最快的服务器,使用最广泛的服务器.

二.Tomcat服务器

1.Tomcat的安装和使用

Tomcat是使用Java语言编写的一个服务器(程序),要运行Tomcat,必须得有jre.
1.安装启动:
注意事项:
32位的系统:32位的JDK --->32位的Eclipse--->32位Tomcat
64位的系统:64位的JDK --->64位的Eclipse--->64位Tomcat

Tomcat根目录.png Tomcat启动1.png
Tomcat的默认端口是8080:
Tomcat启动2.png
2.访问:
打开浏览器:
http://服务器所在主机的IP:服务器的端口号/资源名字
http://服务器所在主机的名字:服务器的端口号/资源名字

2.Tomcat的常见错误

使用Tomcat的过程中,常见的问题:

出错,不要紧张!有意识的去看Tomcat生成的日志文件(在Tomcat根/logs中):

3.Tomcat的常见配置

(1)修改Tomcat的默认端口:
Tomcat的默认端口是8080,HTTP协议的默认端口是80;
步骤:
1.进入Tomcat根/conf/找到server.xml文件
2.默认是在第71行,Connector元素的 port属性:
3.配置为80端口(80端口是http协议的默认端口):

http://baidu.com:80/index.php 等价于
http://baidu.com/index.php

4.重新启动Tomcat,看到效果;

注意:Tomcat中配置文件一旦修改,就必须重启Tomcat.

(2)管理Tomcat的权限配置:
在Tomcat根/conf/tomcat-users.xml文件:
在其中增加:

管理Tomcat权限配置.png

表示:先声明使用manager-gui的角色(角色决定了拥有哪些权限),
再定义了账户为admin,密码为1的用户,并且把manager-gui的权限赋给了admin用户.

(3)把Tomcat添加到Windows的服务列表:
把Tomcat配置到服务列表:这样可以随着系统的启动而启动(一般用在服务上):

删除服务:

4.JavaWeb项目结构

JavaWeb項目结构.png

WEB应用程序/Web项目,指供浏览器访问的程序,通常也简称为web应用。
(1)一个Web应用由多个静态Web资源和动态Web资源组成,如:

(2)组成 Web 应用程序的这些文件要部署在相应的目录层次中,根目录代表整个 Web 应用程序的“根”路径。
从JavaEE6开始(Tomcat7,Servlet3.0规范),JavaWeb应用下可以不需要web.xml文件了.(可以使用注解)。但是建议保留该文件。

5.基于Eclipse搭建JavaWeb项目

搭建基于Eclipse的纯的JavaWeb项目:
步骤:

改变classpath路径.png

6.Eclipse的Tomcat插件

装插件:

tomcat关联.png

7.部署Web项目

方式一:
直接把应用的根目录,拷贝到Tomcat根/webapps下,这是MyEclipse默认的部署方式:
缺点:该目录下的应用将会越来越多,启动Tomcat就变慢了.若其中有一个应用有问题,Tomcat就会启动失败.
解决方案:
对比给Eclipse安装插件:
1>.上述部署项目的方式,相对于把插件拷贝到Eclipse/plugins下;
2>.联想到给Eclipse安装插件的第二种方式,使用link文件来关联插件,告诉Eclipse你应该去哪里找插件.
把该思想运用到部署项目上来:(第二种方式)
虚拟路径:告诉Tomcat应该去哪一个路径去找项目被部署.

方式二:
以配置文件的方式,告诉Tomcat应该把哪一个路径下的项目给部署起来.
方式二也有两种用法:

<Context path="pss" docBase="D:\JavaPros\pureWeb\webapp"/>

在部署的时候,也可以把path的值设置"";

<Context path="" docBase="D:\JavaPros\pureWeb\webapp"/>

改完之后,访问方式:http://IP地址:端口号/资源的名字
注意:若存在多个<Context/>,必须保证多个Context的path值不能相同.

第二种:
从Tomcat5.5开始推荐使用另外的一种方式来部署项目:

意思方式二的两种方式,其实是一个意思.

部署配置.png

8.虚拟主机配置

为什么需要配置虚拟主机:
有两个公司的Web应用都发布在同一个Tomcat服务器上,可以为每家公司创建一个虚拟主机
www.google.com www.baidu.com

虚拟主机配置.png 虚拟主机配置2.png

三.HTTP

1.HTTP协议概述

HTTP: 特点:无状态(不知道上一次的请求是哪一个浏览器发出的),默认端口就是80
https:
WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是HTTP协议。
HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议之上的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式。

HTTP协议到底约束了什么:
1.约束了浏览器以何种格式向服务端发生数据: 规范了浏览器发送数据的格式.
2.约束了服务器应该以何种格式来接受客户端发生的数据:
3.约束了服务器应该以何种格式来反馈数据给浏览器 规范了服务器响应数据的格式.
4.约束了浏览器应该以何种格式来接收服务器反馈的数据.

HTTP1.0规范:
若请求的有N个资源,得建立N次连接,发送N次请求,接收N次响应,关闭N次连接.
每次请求的之间都要建立单独的连接,请求,响应,响应完关闭该次连接:

HTTP1.1规范:
能在一次连接之间,多次请求,多次响应,响应完之后再关闭连接.
HTTP 1.1的特点:

HTTP协议的版本
HTTP/1.0、HTTP/1.1、HTTPS2.0

HTTP协议.png

2.httpwatch和firebug工具

httpwatch观察网络.png firebug观察网络.png

3.请求消息

1、包含三大部分
1.1请求行:
位于请求消息的第一行
格式:请求方式 资源路径 HTTP版本号
常用请求方式:GET和POST方式

1.2若干请求头:
从第二行开始到第一个空行。作用:向服务器传递客户端的一些基本信息

1.3请求正文:
从第一个空行开始,后面的都是正文。(只有POST请求方式才有)

4.响应消息

包含三大部分
1.1状态行:
位于响应消息的第一行
格式: HTTP版本号 状态码

1.2若干响应头:
从第二行开始到第一个空行

1.3响应正文:
从第一个空行开始,后面的都是正文。

5.常见的响应状态码:

200: 表示请求和响应成功,完全OK.
404: 表示当前请求的资源找不到. 自己的问题.
500: 表示服务端程序有问题(Java代码有问题).

6.GET和POST请求的区别(面试)

GET.png POST.png

GET请求特点:
请求行:GET /index.html?username=will&email=abc HTTP/1.1

1):请求的资源和请求参数都暴露在浏览器的地址栏,不安全.
2):请求的数据大小是不能超过1Kb/2Kb,反正,数据大小有限制,只能传输很少的数据.如此:文件上传就不能使用GET方式.
3):GET请求参数的数据不会出现在请求的实体(正文)中.
4):GET请求会缓存响应的数据.

什么情况会造成GET方式的请求:
1):直接在浏览器地址栏敲击回车.
2):点击超链接,跳转到目标界面,发生GET请求.
3): form表单的method属性值为GET.(建议使用POST).

如何在GET请求时,查看请求的数据.

GET查看数据.png

POST请求特点:
请求行:POST /index.html HTTP/1.1

1):浏览器地址不会暴露请求的数据,比较安全.
2):POST请求的数据在请求的正文(实体)里面.
3):POST请求的数据大小没有限制,文件上传必须.
4):POST请求不会缓存数据.

什么情况会造成POST方式的请求:
form表单的method属性值为POST.(建议使用POST).

表单的提交,建议使用POST.

如何在POST请求时,查看请求的数据.

POST查看数据.png

发生GET请求时,参数的携带方式:
index.html?username=will&email=abc
资源后第一个参数使用?来连接,以后的参数都是&来做连接.

上一篇下一篇

猜你喜欢

热点阅读