3.web开发入门知识

/*web入门*/

/*互联网上常用的协议以及它的端口*/

http    80      http://localhost/    相当于    http://localhost:80/         http协议 默认是80

            http://localhost:8080/       (启动成功后 可进入Tomcat主页)

smtp 25

pop3 110

ftp 23

https 443

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

  html、css、js文件

  Jsp文件、java程序、支持jar包

  配置文件等等......

 组成web应用的这些文件通常我们会使用一个目录组织,这个目录称之为 /*web应用所在目录*/

 

WEB 应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理, /*这个过程称之为虚拟目录的映射*/     /*把web应用交给服务器管理才能 让外界访问*/

 

虚拟目录的映射方式

/*一、在Server.xml中进行配置*/

  在<Host>元素中添加子元素<Context path=" ... " docBase=" ... "/> 并重启服务器即可;

  path表示虚拟目录,docBase表示真实的web应用所在目录;

  比如在C盘中存在a这个web应用,则 <Context path="/test" docBase="C:\a"/>

  则输入 http://localhost:8888/test/1.html 就能访问到a文件夹下的 1.html

    注意:这种方法需要重启服务器才能够生效,所以不适用,因为每次添加一个web应用都需要重启服务器。

/*二、最佳配置方法*/

  $CATALINA_BASE/conf/catalina/localhost/ 文件夹下创建一个xml文件,任意文件名都可以,但是此文件名是web应用发布后的虚拟目录;

  比如创建一个test.xml ,在文件中添加 <Context docBase="C:\a"/>

  不需要重启服务器,只需要在浏览器中输入 http://localhost:8888/test/1.html 即可访问C:\a\1.html ;


/*三、配置默认web应用*/
  一般,输入 http://localhost:8080 后都会跳出 tomcat的主页,因为这个tomcat的web应用就是默认的web应用,如果想将自己的web应用配置成默认的web应用,

  只需要在Server.xml中的<Context>元素中为 <Context path="" docBase="C:\a"/> 

  或者将test.xml改成 ROOT.xml 即可;输入 http://localhost:8080/1.html 就能访问C:\a\1.html ;

/*web应用组织结构和web.xml文件的作用*/

开发web应用时,不同的类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错

 

mail-----------------------web应用所在目录
|
|---1.html、jsp、css、js文件等 这些文件一般在web应用根目录下,根目录下的文件外界可以直接访问
|
|---2.WEB-INF 目录 (java类、jar包、web应用的配置文件存在这个目录下,该目录下的文件外界无法非法直接访问,由web服务器负责调用)
|    |
|    |--- classes目录 --(java类)
|    |--- lib目录 ---(java类运行所需jar包)
|    |--- web.xml(最重要) --- (web应用的配置文件)
|    |
|

注:1.web.xml必须要写 (可以仿照tomcat的web.xml,,抄头抄尾)

  2.web.xml文件是整个web应用中最重要的配置文件,它必须放在WEB-INF目录中。在开发web应用时,但凡涉及对web应用中的web资源进行配置,

     通通是在web.xml文件中进行设置,例如:某个web资源配置为网站首页 ;将servlet程序映射到某个url地址上 ;为web应用配置监听器...

  3.各文件层级 见上 (高低顺序)

 

配置虚拟主机 /*自己没有成功..*/

  1.在一个tomcat服务器中可以放置多个网站,所谓配置虚拟主机,就是在tomcat服务器中配置一个网站

  2.如需在web服务器中配置一个网站,需使用Host元素(serve.xml中)进行配置

  例:<Host name="site1" appBase="c:\app"></Host>

  3.配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册

 

/*Web资源访问流程*/

  1.在ie中输入了地址后,查询windows(hosts文件),获取主机名对应的ip

  2.先查询hosts文件,windows查不到后,查询dns 获取主机名对应的ip

  3.用查询的ip连接服务器

  4.发送http请求

  5.从请求信息中获取客户端想访问的主机名

  6.从请求信息中获得客户机器访问的web应用

  7.从请求信息中获得客户端访问的web资源

  8.读取相应主机下的web应用下的 web资源

  9.用读取到的web资源的数据,创建一个http响应

  10.服务器回送http响应

  11.浏览器收到http响应,解析出资源数据显示

 

将web应用打成war包

  示例:在dos命令行中 转到相应路径下(有web应用的地方) 输入 /*jar -cvf news.war news*/ news 是一个例子

reloadable元素

  配context元素的reloadable元素,让tomcat自动加载更新后的web应用 (小程序可以用,大程序不要用)

 

tomcat服务器的管理平台

  1.在tomcat-users.xml 中 指定用户名 密码 以及权限

  2.在localhost:8080中点击 manager APP 输入账号以及密码 完成登录

  注:权限: 视频里面写的是manager 但是在我这里出现错误,后面改成 manager-gui 界面成功显示 (tomcat版本问题?)

  manager-gui

  允许访问html接口(即URL路径为/manager/html/*) *为通配符

  manager-script

  允许访问纯文本接口(即URL路径为/manager/text/*)

  manager-jmx

  允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)

  上面三种包含下面这种

  manager-status

  允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)*/

 

/*HTTP协议*/ (工作在TCP/IP协议之上的)TCP/IP 协议里 有 网络接口层,互联网层,传输层,应用层(HTTP协议就包含在应用层里的 一个协议)

  HTTP1.0/HTTP1.1 允许客户端与web服务器建立连接后,在一个连接上获取一个/多个web资源 (HTTP1.1更好)

  客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通讯的格式

  使用telnet程序连上web服务器,并使用HTTP协议获取某个页面,快速了解HTTP协议的作用

  安装IE浏览器插件HttpWatch,查看IE浏览器通过HTTP协议获取某个页面


一个web页面中,使用img标签引用了三幅图片,当客户端访问服务器中的这个web页面时,客户端总共会访问几次服务器,(向服务器发送了几次HTTP请求)

  /*4次 1次请求拿到html中的数据 三幅图片各需要一次请求*/ /*做web开发时,需要尽可能减少HTTP的请求数*/

  /*一种解决办法 将3幅图片搞到一幅图片上,控制image标签打开大图片的一部分 (两次请求)(CSS技术)*/


/*HTTP请求*/

  客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求,一个完整的HTTP请求包括以下内容:


一个请求行

  请求行用于描述客户端的请求方式,请求的资源名称以及使用的HTTP协议的版本号(例:GET/books/java.html HTTP/1.1) 请求方式->请求的URL地址->请求的协议

  请求行中的GET称之为请求方式,请求方式有 /*POST,GET*/等

  默认的都是GET 只有通过更改表单的提交方式才可以改为POST

  如:<form action="/1.html" method="post"> </form>


GET和POST的区别:(体现在数据传递上)

  GET方式的特点:在请求的URL地址后以?的形式带上交给服务器的数据,在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K

  POST方式的特点:在请求的实体内容中向服务器发送数据,传送的数据量无限制


若干请求头

  请求头用于描述客户端请求哪台主机,以及客户端的一些环境信息等

  Accept:用于告诉服务器,客户机支持的数据类型

  Accept-Charset:用于告诉服务器,客户机采用的编码

  Accept-Encoding:用于告诉服务器,客户机支持的数据压缩方式

  Accept-Language:客户机的语言环境

  Host:客户机通过这个头告诉服务器想访问的主机名

  If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间

  Referer:客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的(防盗链)

  User-Agent:客户机通过这个头告诉服务器,客户机的软件环境

  Cookie: 客户机通过这个头向服务器带数据

  Range:Range头指示服务器只传输一部分web资源,这个头可以用来实现断点续传功能,Range字段通过三种格式设置要传输的字节范围:

  bytes=1000-2000 bytes=1000- bytes=1000 (分别表示传输范围 1000-2000字节 1000字节以后 最后1000字节)

 

实体内容

 

 


/*HTTP响应*/

一个状态行 (用于描述服务器对请求的处理结果) 格式:HTTP版本号 状态码 原因叙述<CRLF>

  状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数

  200(没有问题) 302(要你去找别人) 304(要你去拿缓存) 307(要你去拿缓存) 403(有这个资源,但是没有访问权限) 404(服务器没有这个资源) 500(服务器这边有问题)

 

若干响应头 (响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据)

  Location:这个头配合302状态码使用,用户告诉客户找谁

  Server:服务器通过这个头,告诉浏览器服务器的类型

  Content-Encoding:服务器通过这个头,告诉浏览器数据的压缩格式

  Content-Length:服务器通过这个头,告诉浏览器回送数据的长度

  Content-Type:服务器通过这个头,告诉浏览器回送数据的类型

  Last-Modified:服务器通过这个头,告诉浏览器当前资源缓存时间

  Refresh:服务器通过这个头,告诉浏览器隔多长时间刷新一次

  Content-Disposition:服务器通过这个头,告诉浏览器以下载方式打开数据

  Transfer-Encoding:服务器通过这个头,告诉浏览器数据的传递方式

  ETag:缓存相关的头

  Expires:服务器通过这个头,告诉浏览器把回送的资源缓存多长时间,-1或0 则是不缓存

  Cache-Control:no-cache

  Pragma:no-cache

  服务器通过这两个头,告诉浏览器不要缓存数据 (因为浏览器有很多种,所以执行不要缓存的头也有很多)

 

实体内容 (代表服务器向客户端回送的数据)

 

posted @ 2017-08-14 10:15  白日梦想家12138  阅读(175)  评论(0编辑  收藏  举报