WEB开发入门基础

今天开始接触Web开发的一些基础,对于客户端、服务端等有了一些了解,或许在这里首先就要提及B/S和C/S之间的区别:

1.C/S与B/S之间的区别:
***B/S(Browser/Server,浏览器/服务器模式):

由于浏览器是现在最常用的软件,这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用,浏览器通过Web Server同数据库进行数据交互。

***C/S(Client/Server,客户机/服务器):

C/S(Client/Server,客户机/服务器) ,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。

2.常见的WEB服务器

WebLogic——支持J2EE规范,收费

apache Tomcat,支持全部的JSP以及Servlet规范

现在一般情况下都使用apache Tomcat,以下是apache Tomcat的体系结构:

这里写图片描述
3.常见协议端口

http—80

sntp—25(邮件发送协议)

pop3—110(政局协议,用于电子邮件的接收)

ftp —23(文件传输协议,是TCP/IP组中协议之一)

https—443(在很多银行网站或电子邮箱等等安全级别较高的服务中使用得协议,由HTTP + SSL / TLS构成,在HTTP的基础上,服务端和客户端的信息传输都会通过TLS进行加密。)

4.WEB应用(程序)

***WEB应用(程序):供浏览器访问的程序,由多个静态Web资源和动态资源组成

***虚拟目录的映射:WEb开发之后,如果供外界访问,需要把外界应用所在服务交给Web服务器看管处理,整个过程称为~

***WEB资源访问过程原理UML图如下:

WEB资源访问过程原理UML图如下

如何在服务器配置Context?
**在server.xml中的中配置(虚拟目录的映射)Web应用配置Context(推荐)方式:方法有五种,具体见tomcat的文档Context(适应于不需要多次启动服务器),在Catalina/conf/[enhinename]/[hostname]/目录下任意建一个.xml文件,可以在其中配置Context(例如:),这个可以被认为是Context虚拟目录,可以不用写Path,如果是访问多级目录下的.html,那么访问时可以将.html文件名写成a#b#c(表示a目录下的b下的c的html文件)。
*在6.0版本后不需要配置Context,只需要将文档直接放置在webapp文件夹中。

5.Web应用的组成结构
具体参见如下图:
这里写图片描述
6.web.xml文件作用

    • 为某个资源配置为首页

    • 将servlet程序映射到某个url地址上

    • 为web应用配置监听器和过滤器

      7.如何配置虚拟主机

      配置虚拟主机即是在Tomcat中配置一个网站。

      这里写图片描述

        • 首先进入server.xml文件中,添加(例如使用Host元素建立一个网站:)”);

        • 想要使外部访问,需要添加:;

        • (PS:因为自己新建的网站sina如果一下子就能被访问,那么sina新浪官方网站岂不垮啦!因此需要绕过DSN!!)如果想要绕过DNS来访问新浪sina,可以在host文件中配置一个ip地址给ww.sina.com,如:198.168.1.228 www.sina.com ,就可以直接在本地host访问所创建的网站服务器(还可以在多个网站);

        • 如果想要直接按enter就可以直接访问,就需要配置为缺省文件,方法如下:

        • 接着在mail文件夹中创建一个WEB-INF文件夹,然后新建一个web.xml,头部和尾部内容按照最初的格式,里面添加一个页面的url就完成主页面的设置。

          7.在web中常出现的几个问题

          *Web资源的访问原理过程(以先建一个sina网站为例)

          这里写图片描述

          *如何将Web应用进行打包war
          进入cmd命令中——>cd\——>进入所需要打包的目录下(如sina)——>jar查看相关详细信息——>jar -cvf news.war news(sina目录下的news文件—需要打包为war包),最后需要将文件和其war文件包放到服务器上,也就是放在Tomcat的webapp目录下这样也可以通过通过远程软件进行开发。
          *如何配置context元素的reloadable元素,让tomcat自动加载更新后的web应用?(推荐不用)
          直接在web.xml中的host配置自定义的网站中的Context中添加reloadable=”true”;
          ///例如:在web.xml中
          <Host name="www.google.com" appBase="c:/google">
                   <Context path="" docBase="c:\google\mail" reloadable="true"/>
           </Host>
          好处:在WEB—INF中会写很多java程序,如果这些程序会发生改变,那么就会自动加载;
          弊端:如果Web应用程序很大,就会造成每次修改就会自动加载,造成服务器总是加载,这样会造成内存溢出或其他严重问题。

          8.HTTP协议——超文本传输协议

          **HTTP请求行——请求方式

          HTTP请求

          ***GET方式:传输的过程中在请求的URL地址后以?形式带上交给服务器的数据,多个数据以&进行分隔,但是在URL后附带的参数是有限制的,其数据容量通常不能超过1K;
          ***POST方式:可以在实体内容中向服务器发送请求数据,不会将数据参数等内容明文显示出来,并且传输容量无限制。
          **HTTP请求头——消息头
          Accept:text/html,images/*等;//表示这个接受HTML文件或图片或者所有都支持
          Accept-Charset:ISO-8859-1;//用于告诉服务器,客户机支持的数据类型
          Accept-Encoding:gzip/compress;//用于告诉服务器,客户机支持的数据压缩格式;
          Accept-Language:zh-en//客户机的语言环境
          Host:www.sina.com;//客户机想访问的主机名
          Id-Modified-Since:Tue,11 jul 2000 9:00:00 GMT;//资源的缓存时间
          Referer:http://www.it315.org.index.jsp;//客户机告知服务器从哪个资源访问服务器(防盗链——防止资源被其他服务给占据)。
          User-Agent:Mozilia/4.0(compatible;MSIE(版本浏览器) #####5.5;Windows NT(Window系统的内核) 5.0) ;//软件环境
          cookie:客户机通过cookie附上数据;//软件环境
          Connection:close/Keep-Alive;//客户机关闭或者处于持续连接状态
          Date:Tue,11 jul 2000 9:00:00 GMT;//请求日期
          **HTTP响应(包括状态行,若干消息头,以及实体内容)

          HTTP响应

          状态行——用于描述服务器对请求的处理结果

          状态行

          格式:HTTP版本号 状态码 原因描述
          eg:HTTP/1.1 200 0K(200代表一切所有,200 OK代表一切OK)
          **状态码:
          100-199:表示成功接收成功,要求客户机继续提交下一次请求才能完成处理过程;
          200-299:表示成功接收请求并已完成整个处理过程,常用200;
          300-399:表示为完成请求,客户需要进一步细化请求,常见的有302、307、304;
          400-499:客户端的请求有错误,客户机所在的资源中没有,常见的错误就是自己url地址写错或者出现其他错误,常用404;
          500-599:服务器端出现错误,常用500。
          **多个响应头——用于描述服务器的基本信息以及数据的描述(通过头来控制浏览器的行为,例如有些浏览器以下载的形式打开,有的是直接打开)
          //eg:
             Server:Microsoft-IIS/5.0
             Date:Thu,13 Jul 2000 05:46:53 GMT
             Content-Length:2291
             Content-type:text-html
             Cache-control:private
          **HTTP请求中常用的响应头

          这里写图片描述

          Location://如:http://www.it315.org/index.jsp—配合302状态码使用,用于告知客户找谁;
          server:apache Tomcat//告知浏览器服务器的类型;
          Content-Encoding://如gzipo(数据压缩格式)
          Content-Length//回送的数据长度
          Content-type://如text/html或者image/bmp或者image/jpeg—回送数据的类型(具体文件类型请看tomcat的web.xml文件)
          Content-Language:zh-un
          Last-Modified://当前资源缓存时间
          Refresh://如20s—每隔多久刷新一次,还可以在时间后面添加具体网站url,表示每隔多久进入该网站(一般用在需要定时刷新的场景,例如聊天网站、股票网站等)
          Content-Disposition://如:attachment;filename,表示浏览器以下载形式打开数。
          Transfer-Encoding:如chunked,//表示以块状形式传送—服务器告知它的传送格式
          //三个拒绝缓存的语句
          ETag://和缓存相关
          Expires://服务器告知浏览器回送的资源回送多久时间,其中Expires:0或-1就表示不缓存
          Cache-Control:no-cache&&Pragma:no-cache//控制浏览器不要缓存;
          //(那么在网站中对于实时性很高的资源不需要缓存)
          **断点下载
          ***HTTP请求头字段Range:可以实现断点下载,有以下三种格式:
          ***Range:bytes=1000-2000;//表示传输范围在1000-2000;
          ***Range:byte=1000-;//表示传输Web资源中第1000个字节以后所有的内容;
          ***Range byte=1000;//传输最后的1000个字节;
          ***HTTP响应头字段:
          Accept-Ranges:说明web服务器是否支持Range格式,如果支持,则返回Accept-Ranges:bytes,如果不支持,则返回Accept-Ranges:none;
          Content-Range:指定了返回的web资源的字节范围。

          对于以上的知识还只是刚开始接触,如果以上有哪里错误请指正!

          • 0
            点赞
          • 0
            收藏
            觉得还不错? 一键收藏
          • 0
            评论

          “相关推荐”对你有帮助么?

          • 非常没帮助
          • 没帮助
          • 一般
          • 有帮助
          • 非常有帮助
          提交
          评论
          添加红包

          请填写红包祝福语或标题

          红包个数最小为10个

          红包金额最低5元

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

          抵扣说明:

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

          余额充值