zoukankan      html  css  js  c++  java
  • Web服务器

     WEB 服务器

    1. 基本概念

    什么是web

    WEB在英语中即表示网页的意思,它用于表示Internet主机上供外界访问的资源以及超链接所组成的链表

    放在internet网上供外界访问的文件或程序被称为web资源

    web资源被分为:

    静态web资源: htmlcssjpg

    动态web资源:ServletJsp

     

    2. 什么是 WEB 服务器?

    就是一台电脑,安装了一个服务器软件

    3. 为什么需要安装 WEB 服务器

    思考问题从一台计算机的 IE 浏览器如何去访问另一台计算机中的文件

     3.1  两台计算机是如何实现通讯的?

    IP地址(计算机的唯一标识

    IPV4 4个字节的整数,每个字节以 点号 隔开 192.168.1.100  每个字节的取值 0~255

    在计算机中程序会绑定在某一个端口  0~65535  尽量用 1024 以上的

    连接一台计算机就需要输入 ip 地址和端口号

    作为接收方, 应该绑定ip,监听指定的端口

    3.2   在本地写程序添加一个服务,供别人来访问, 假设监听 8888 端口

    3.3   编码实现了一个本地服务器程序

    作用: 管理本地的资源,只要将html页面放到指定的目录下,外界就可以访问了

    3.4   安装服务器的目的: 开发好的web资源可以发布到服务器上,这样外界就可以通过浏览器访问了

     

    源程序: MyServer.java

    // ServerSocket 对象可以监听端口

    ServerSocket serversocket = new ServerSocket(6666);

    while(true) {

    Socket socket = serversocket.accept(); // 等待客户端的连接请求,一旦有请求过来,就结束阻塞,返回客户端对象

     

    // 一旦有客户来访问, 就另开一个新线程去提供服务, main线程继续等待下一个客户的连接

    new Thread(new MyService(socket)).start();

     

    }

    MyService.java

    // 提供服务

    InputStream in = socket.getInputStream();

    Thread.sleep(200);

    int len = in.available(); // 估计此流不受阻塞能读取的字节数

    byte[] buffer = new byte[len];

    in.read(buffer);

    String request = new String(buffer);

    // 截取第一行

    String firstLine = request.substring(0, request.indexOf(" "));

    String uriName = firstLine.split(" ")[1];

    OutputStream out = socket.getOutputStream();

    // 根据需要访问的资源创建 File 对象

    File file = new File("src" + uriName);

    if(!file.exists()) {

    out.write("对不起!您访问的资源不存在!别瞎搞!!".getBytes());

    out.close();

    return ;

    }

    // 从文件读, 往浏览器写 

    FileInputStream fis = new FileInputStream(file);

     

    buffer = new byte[1024];

    while ((len = fis.read(buffer)) > 0) {

    out.write(buffer, 0, len);

    }

    socket.close();

     

    Tomcat 服务器的安装和配置

    1. 使用 tomcat6.0.20.rar 文件解压即完成安装

    2. tomcat 就是一个java程序,一定会用到 jre

    所以需要配置环境变量 java_home 配置成jdk的安装目录 c:jdk1.6

    tomcat的启动是通过 startup.bat 文件, 实际上 startup.bat 中是去调用

    catalina.bat 文件, 而且是通过 %catalina_home%incatalina.bat 去找

    所以为了保证服务器启动正常, 需要配置 catalina_home 环境变量为 tomcat的安装目录

    3. tomcat 的目录结构

     bin : 存放一些执行文件

     conf : 存放服务器的配置文件

     lib : 存放tomcat 所依赖的 jar 文件

     logs: 存放日志文件

     temp:  存放临时文件

     webapps: web applications 存放所有的web应用程序(web资源)

     work: tomcat 的工作目录, jsp翻译成的Servlet就在这个目录下

    4. web应用

      多个web资源存放在一个目录下即为一个web应用(web应用程序、web工程)

      web 应用的目录结构

    静态web资源直接放在目录下

    java 类放在classes目录下

    web.xml 文件负责管理web应用下所有的web资源

    所有jar包放在lib目录下

     

     WEB 应用的映射

    1. 虚拟目录

    一个web应用(服务器上一个目录需要供外界访问的路径,需要映射虚拟目录

    在 tomcat6 中,放在webapps下的web应用,服务器会自动做映射(将文件夹名称作为虚拟路径)

    对于 webapps 目录外的web应用需要手动映射虚拟路径

    1.1. 在 server.xml 文件可以配置

    <host>

    <Context path=”/itcast” docBase=”f:itcast” />

    </host>

     

    1.2. 在 %tomcat目录%confcatalinalocalhost 下写一个 xml文件

    文件名就是 虚拟目录

        <Context docBase=”f:itcast” />

    多级目录配置  aaa#bbb.xml 对应 /aaa/bbb

    如果文件名 是 ROOT.xml 那就是配置了缺省的web应用, 访问时不需要输入 虚拟目录

     

    2. web.xml

    管理 web 应用下所有的web资源

    通俗地讲,一个web应用下所有的web资源如何被外界访问都需要在此文件下做映射

    包括咱们后面学的Servlet jsp 都需要在这个文件中做映射

    实验: 配置web应用的 首页

    在 web 应用下新建目录 WEB-INF ,在此目录下 新建 web.xml 文件

    <?xml version="1.0" encoding="ISO-8859-1"?>

     

    <web-app xmlns="http://java.sun.com/xml/ns/javaee"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

        version="2.5">

     

        <welcome-file-list>

            <welcome-file>itcast.html</welcome-file>

        </welcome-file-list>

     

    </web-app>

     

     

    3. 域名解析

    一个完整 url 

    http:\www.sina.com:80itcastindex.jsp

    协议名   主机名         端口号  资源名 (uri

    IE 访问服务器的原理,

     在IE中输入的地址中包含域名,域名就需要被翻译成服务器的IP,才能访问到服务器

     

     

     

    4. web应用映射的练习:

    新建一个 web 应用 

    配置成缺省的web应用

    配置首页

    配置tomcat监听端口为80

    在 windows 中注册主机名

     

    5. 虚拟主机

    服务器允许在一个IP上配置多个主机,即虚拟主机

    http://www.sina.com:80/index.html

    中的 www.sina.com 起了两个作用:

    DNS服务器,作为域名被解析为IP

    通过Host头告诉服务器访问的主机名

     

    配置方式: 在 server.xml 文件中配置Host元素,需要指定name(主机名)、appBase(默认web应用存放目录)

    appBase目录下所有的web应用,tomcat会自动映射虚拟路径

    <Host name="www.sohu.com"  appBase="F:sohuwebapps" />

     

    做实验: 给新配置的虚拟主机配置缺省的web应用

    <Host name="www.sohu.com"  appBase="F:sohuwebapps" >

    <Context path="" docBase="F:sohuwebappsabc" />

    </Host>

    分析web资源访问过程

    http://www.sohu.com/abc/a.html

    访问一个 a.html 静态web资源, IE 做了什么事

    1) 将 www.sohu.com 作为域名发送给DNS , 解析成 IP 地址访问一台服务器

    2) 发送 Host 头(www.sohu.com),告诉服务器我要访问的虚拟主机 ,服务器拿着Host头找匹配的Host元素

    3) abc作为虚拟目录,告诉服务器我要访问的web应用 ,服务器拿着 abc 找匹配的web应用

    4) 将 a.html 作为资源名, 告诉服务器我要访问的 web 资源, 服务器拿着 a.html web.xml文件中找映射

    虚拟目录对应是一个web应用的目录,所以虚拟目录也被我们称作web应用路径(web应用的上下文contextpath)

  • 相关阅读:
    新购服务器流程
    nginx代理证书使用方法
    一键部署lnmp脚本
    mysql主从库配置读写分离以及备份
    Linux入门教程(更新完毕)
    Git 工作流程
    Git远程操作
    常用Git命令
    js数组去重
    Sublime Text设置快捷键让html文件在浏览器打开
  • 原文地址:https://www.cnblogs.com/qq809306794/p/3183223.html
Copyright © 2011-2022 走看看