精华内容
下载资源
问答
  • web服务器

    千次阅读 多人点赞 2021-03-24 00:34:17
    web服务器 服务器的相关概念 服务器与客户端 服务器的概念:提供网络服务的一台机器,通过在自己的电脑上安装特殊的软件(或者是运行某段特殊的代码)来提供服务 服务器 = 电脑 + 可以给其他电脑提供服务的软件 ...

    web服务器

    1.服务器的相关概念

    1.1服务器与客户端

    服务器的概念:提供网络服务的一台机器,通过在自己的电脑上安装特殊的软件(或者是运行某段特殊的代码)来提供服务

    • 服务器 = 电脑 + 可以给其他电脑提供服务的软件

    • 服务器:提供服务的是服务器

    • 客户端 = 电脑 + 软件(平时个人使用的软件)

    • 客户端:享受服务的是客户端

    1.2服务器的类型

    根据服务不同,服务器的类型也不同:

    • web服务器:安装apache, tomcat, iis, 或者在 node.js 环境写代码 来提供:图片浏览,新闻浏览…等服务的服务器。
    • ftp服务器:安装serv-U软件,为其它电脑提供文件下载,共享服务。
    • 数据库服务器:安装mysql软件,为其它电脑提供数据库服务。

    1.3web服务器

    • 用户通过浏览器来享受web服务器提供的服务
    • 我们用url地址来访问某个web服务器上的资源
    • 浏览器端发起请求,web服务器收到请求后,响应这请求,并将处理结果返回给浏览器
    • 浏览器端与web服务器是通过http(或者是https)协议来进行请求和响应的

    在这里插入图片描述

    1.4IP地址

    全称:I ntternet P rotocol Address

    作用:标识一个网络设备在某个具体的网络当中的地址。我们要想访问某个电脑上的资源,首先要找到它对应的IP

    分类:IPV4 IPV6

    格式:**[0255].[0255].[0255].[0255] ** 例如ipv4:127.0.0.1 (这个地址是本机的ip地址)

    即四个0~255的数字组成(在同一个网络中,计算机的IP地址是不允许重复的,都是唯一的)

    1.5域名

    域名:ip地址的别名,由于ip地址不好记忆,就取了一个好记的别名。

    localhost这个域名特指127.0.0.1这IP地址。

    localhost = 127.0.0.1 (一样,都表示本机的地址,只是换了一个好记的名称)

    域名解析系统:把域名翻译成IP地址的系统

    1.6端口

    一个IP地址可以有65536个端口(范围是从[0,65535])。

    不同的端口被不同的软件占用,以提供不同的服务。

    一台电脑可以通过安装多个服务器端软件来提供服务,比如web服务器,ftp服务器…。

    仅仅通过ip地址是无法区分不同的服务的,所有需要 IP地址 + 端口号 来区分不同的服务

    在这里插入图片描述

    1. 服务器要提供服务必须通过指定的端口
    2. 服务器与客户端都需要通过端口进行通信
    3. 端口是可以编程分配的
    4. 有一些端口是被约定的了

    可以通过 小黑窗输入命令: netstat -a -n -o 查看端口的使用情况

    在这里插入图片描述

    1.7协议(http)

    制定客户端与服务器之间的通讯规则。不同的协议的作用也不同。

    http协议

    • HTTP(HyperText Transfer Protocol)是超文本传输协议

    • 协议双方:浏览器与web服务器都要遵守的协议

    • 请求通常是由浏览器发起的

    • HTTP协议中明确规定了 请求数据响应数据 的格式(报文)

      • 浏览器 请求 资源 要遵守http协议:请求报文 (请求行,请求头,请求体)

      • 浏览器 返回 资源 要遵守http协议:响应报文 (响应行,响应头,响应体)

    2.用http模块写一个简单的web服务器

    2.1用http实现一个简单的虚拟服务器(效果如下)

    // 1.引入 http 模块
    const http = require('http');
    // console.log(http);
    
    // 2.创建服务// request:本次请求// res : 本次响应
    const server = http.createServer((req,res)=>{
        // 回调函数 : 每一次收到请求,他就执行一次
        // 设置响应体
        res.setHeader('content-type','text/html;charset=utf-8')
        // 结束本次请求
        // 设置响应体:返回给用户看的
        res.end('你好,虚拟服务器完成');
    });
    
    // 3.启动服务
    server.listen(8000,()=>{
        console.log('虚拟服务器启动成功','端口是8000');
    });
    

    运行结果:

    在这里插入图片描述

    2.2操作步骤

    1. 创建一个文件,名为 http模块实现虚拟服务器.js的文件(文件名路径可以自行设置,建议不要使用中文命名,这里为了演试就用中文的名字)。

    2. 在js文件中写入如下(如上图效果图)

      • 1)引入http核心模块
      • 2)使用createServer来创建服务
      • 3)使用listener来启动服务
    3. 运行js代码

      在js文件目录,打开小黑窗,键入命令 node http.js,此时会弹出一个小黑窗,不要关。

    4. 本地验收

      打开一个浏览器页面,输入’http://localhost:8000’,观察效果:

    5. 共享地址

      localhost改成你自己电脑的ip地址,再把这个路径发你的朋友(同一个局域网)来访问。

    6. 停止服务( ctrl + c )

    2.3工作原理

    使用http模块在本机中创建一个虚拟的服务器,用来接收浏览器的请求,并给出响应

    在这里插入图片描述

    注意:小黑窗不要关,它就是服务器,它不会有主动行为(看起来没有任何变化),它在时刻等待客户端的访问。

    2.4代码解析

    1. 引入核心模块,得到的http是一个对象。

    2. http.createServer方法创建一个http服务。

      参数是一个回调函数:当有http请求进来时,它会自动被调用。请求一次,它就被调用一次

      第一个参数:客户端的请求

      第二个参数:设置对本次请求的响应

      res.end() :设置响应体,结束请求。

    3. server.listen() 用来监听端口。

      格式:server.listen(端口号,[回调函数])。回调是可选的。

      说明:

      • 如果监听成功,则回调函数会执行一次。

      • 如果不成功(例如端口被占用),会报错。

    在这里插入图片描述

    2.5修改代码之后要重启服务器

    更改res.end()的内容,重启后,再次观察

    • 停止服务: 在小黑窗中按下ctrl+c 停止服务。
    • 重启服务:就是重新运行程序(按下向上的箭头,再回车)。

    3.理解请求与响应

    3.1请求

    当web服务器就绪之后,如果没有客户端来访问,它是不会有任何效果的。那么回调函数就不会被执行了。

    然而每一次的请求,都会导致回调函数要执行一次。

    3.2服务器的响应内容格式

    res.end()的格式只能是 stringbuffer

    4.根据不同的url返回不同的内容-认识URL

    4.1URL全称

    Uniform Resource Locator,统一资源定位符。

    4.2作用

    定位资源

    4.3格式

    协议://主机地址[:端口]/路径?查询字符串#锚点

    • 协议:http 或者是 https

    • 主机地址:IP地址 或者 域名

    • 端口号:

      • http请求,默认端口80(可以省略)

      • https请求,默认端口443(可以省略)

      • MySQL默认端口3306

    • 路径:服务器文件夹上的资源。(.html/.css/.images/.js/接口)

    • 查询字符串(参数):? 后面的部分,是键值对的形式

    • 锚点:网页内部的锚点链接

    5.不同的URL返回不同的内容-req.url

    5.1目标:

    通过 req.url来获取当前请求的url地址 ,并做出相应处理

    5.2req.url 用来获取本次请求的资源地址。

    //引入http模块
    const http = require('http');
    
    // 创建服务
    const server = http.createServer(function(req, res) {
      console.log(req.url)
      res.end(req.url)
    });
    // 启动服务
    server.listen(8081, function() {
      console.log('success');
    });
    

    req.url一定是以**/**开头的。

    在现代浏览器中,它们会自动去请求服务器上的favicon.ico(先不用理这个)

    6.不同的URL返回不同的内容-读取文件内容并返回

    6.1目标

    用户在访问服务器上不同的url时,能返回不同的内容

    目录结构

    |-index.html
    |-style.css
    |-01.png
    |-js/jquery.js
    |-server.js
    

    请求与响应的对应的关系

    用户的请求地址 服务器的动作
    http://localhost:8000 读出index.html的内容并返回
    http://localhost:8000/index.html 读出index.html的内容并返回
    http://localhost:8000/style.css 读出style.css的内容并返回
    http://localhost:8000/01.png 读出01.png的内容并返回
    http://localhost:8000/js/jquery.js 读出jquery.js的内容并返回
    http://localhost:8000/xxxx 或者不是上面的地址 返回404

    代码示例:

    // 1.引入 http 模块
    const http = require('http');
    // console.log(http);
    const fs = require('fs')
    const path = require('path')
    // 2.创建服务
    // request:本次请求
    // res : 本次响应
    const server = http.createServer((req,res)=>{
        // 回调函数 : 每一次收到请求,他就执行一次
    
        // 读出文件
        // fs.readFile('')
        const {url} = req;
        console.log(url);    
        if(url === '/' || url === '/index.html'){
            const pathFile = path.join(__dirname,'index.html');
            // console.log(pathFile);
            // 同步读取文件
            const content = fs.readFileSync(pathFile,'utf8');
            // console.log(a);
            // 结束请求
            res.end(content)
        } else if(url === '/style.css'){
            const pathFile = path.join(__dirname,'style.css');
            // console.log(pathFile);
            // 同步读取文件
            const content = fs.readFileSync(pathFile,'utf8');
            // console.log(a);
            // 结束请求
            res.end(content)
        }
       else if(url === '/01.jpg'){
    
            const pathFile = path.join(__dirname,'01.jpg');
            console.log(pathFile);
            // 同步读取文件
            const content = fs.readFileSync(pathFile);
            
            console.log(content);
            // console.log(content);
            // 结束请求
            res.end(content)
        }
       else if(url === '/js/jQuery.js'){
    
            const pathFile = path.join(__dirname,url);
            console.log(pathFile);
            // 同步读取文件
            const content = fs.readFileSync(pathFile);
        res.setHeader('content-type','text/html;charset=utf-8')
            
            console.log(content);
            // console.log(content);
            // 结束请求
            res.end(content)
        }
        else{
            res.end('ok')
        }
    
       
    });
    
    // 3.启动服务
    server.listen(8000,()=>{
        console.log('服务器启动成功');
    })
    

    6.2什么是静态资源

    静态资源指的是html文件中链接的外部资源,如.html, css、js、image文件等等),服务器的处理方法就是:读出文件内容,返回给用户。

    7.不同的URL返回不同的内容-设置content-type

    7.1目标

    会根据不同的文件类型来设置不同的content-type

    7.2content-type的作用

    在http协议中,content-type用来告诉对方本次传输的数据的类型是什么。

    • 在请求头中设置content-type来告诉服务器,本次请求携带的数据是什么类型的
    • 在响应头中设置content-type来告诉服务器,本次返回的数据是什么类型的

    通过使用res对象中的setHeader方法,我们可以设置content-type这个响应头。这个响应头的作用是告诉浏览器,本次响应的内容是什么格式的内容,以方便浏览器进行处理。

    7.3常见的几种文件类型及content-type

    • .html:res.setHeader('content-type', 'text/html;charset=utf8')
    • .css:res.setHeader('content-type', 'text/css;charset=utf8')
    • .js:res.setHeader('content-type', 'application/javascript')
    • .png:res.setHeader('content-type', 'image/png')
    • json数据:res.setHeader('content-type', 'application/json;charset=utf-8')

    其它类型,参考这里:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types

    7.4代码示例:

    目录结构:

    |--pubic
    |-public/index.html
    |-public/stye.css
    |-public/1.png
    |-server.js
    
    // 1.引入http模块
    const http = require('http');
    // console.log(http); //输出的一个对象
    
    const path = require('path');
    
    const fs = require('fs');
    
    // - .html:` res.setHeader('content-type', 'text/html;charset=utf8') `
    // - .css:`res.setHeader('content-type', 'text/css;charset=utf8')`
    // - .js:`res.setHeader('content-type', 'application/javascript') `
    // - .png:`res.setHeader('content-type', 'image/png')`
    // - json数据:`res.setHeader('content-type', 'application/json;charset=utf-8')`
    
    // 2.创建服务
    const server = http.createServer((req, res) => {
    
        // 解构赋值
        const { url } = req;
        // console.log(url);
    
        // 获取路径
        const pathFile = path.join(__dirname, 'public', url);
        // console.log(pathFile);
    
        // 获取后缀名
        const ext = path.extname(pathFile);
        // console.log(ext);
        try {
            if (ext === '.html') {
                res.setHeader('content-type', 'text/html;charset=utf-8')
                const conter = fs.readFileSync(pathFile);
                res.end(conter);
            }else if(ext === '.css'){
                res.setHeader('content-type', 'text/css;charset=utf-8')
                const conter = fs.readFileSync(pathFile);
                res.end(conter);
            }
            else if(ext === '.js'){
                res.setHeader('content-type', 'application/javascript')
                const conter = fs.readFileSync(pathFile);
                res.end(conter);
            }
            else if(ext === '.jpg'){
                res.setHeader('content-type', 'image/jpg')
                const conter = fs.readFileSync(pathFile);
                res.end(conter);
            }
            else{
                res.end('404');
            }
        } catch (err) {
            res.statusCode = 404;
            res.end("请求不到数据", '404')
        }
    });
    
    // 3.启动服务
    server.listen(8000, () => {
        console.log('启动服务器成功', '端口号', 8000);
    });
    

    8.不同的URL返回不同的内容-设置statusCode

    在这里插入图片描述

    代码演示:

    res.statusCode = 404;
    res.end("请求不到数据", '404')
    

    9.处理.html文件的二次请求

    从服务器获取html文件之后,如果这个html文件中还引用了其它的外部资源(图片,样式文件等),则浏览器会重新再发请求。

    假设在index.html中还引入了 style.css 1.png 或者 .js文件,则:浏览器请求localhost:8000/index.html之后,得到的从服务器反馈的内容,解析的过程中还发现有外部的资源,所以浏览器会再次发出第二次请求,再去请求相应的资源。

    10.统一处理静态资源

    文件目录:

    |-public
    |-public/index.html
    |-public/stye.css
    |-public/1.png
    |-server.js
    

    代码演示:

    // 1.引入 http 模块
    const http = require('http');
    // 引入模块
    const fs = require('fs');
    const path = require('path');
    // console.log(http);
    
    const extToContentType = {
        '.html': 'text/html;charset=utf-8',
        '.css': 'text/css;charset=utf-8',
        '.js': 'application/javascript',
        '.jpg': 'image/jpg',
    }
    
    
    // 2.创建服务
    // request:本次请求
    // res : 本次响应
    const server = http.createServer((req, res) => {
        // 回调函数 : 每一次收到请求,他就执行一次
        // const { url } = req;
        // console.log(url);
        // const pathFile = path.join(__dirname, 'public-content-type', url);
        // console.log(pathFile);
        // const conter = fs.readFileSync()
    
        // 解构赋值
        const { url } = req;
        // console.log(url);
    
        // 获取路径
        const pathFile = path.join(__dirname, 'public', url);
        // console.log(pathFile);
    
        // 获取后缀名
        const ext = path.extname(pathFile);
        // console.log(ext);
        if (extToContentType[ext]) {
            // const conter = fs.readFileSync(pathFile);
            res.setHeader('content-type', extToContentType[ext])
            res.end(conter);
        } else {
            res.statusCode = 404;
            res.end("请求不到数据", '404')
        }
    });
    
    // 3.启动服务
    server.listen(8001, () => {
        console.log('服务器启动成功');
    })
    

    11.理解静态资源与接口的区别

    服务器上有很多的资源,每个资源都有自己的url。客户端浏览器想要访问某个资源就要向服务器发起对应的请求。

    11.1资源的分类

    • 静态资源
      • 它们一般表现为一个一个的文件。例如index.html, style.css, index.js, mp4, .png…。
      • 处理请求静态资源时,服务器一般就直接读出资源的内容,再返回给客户端浏览器
    • 动态资源:接口
      • 它们不是以某个具体的文件存在的,而是服务器上的一段代码,访问接口时,服务器会执行这段代码,然后把代码的执行结果返回给客户端浏览器。

    11.2发送请求的途径

    • 在地址栏中直接访问这个url
    • 通过某个a标签进行进行跳转
    • 通过表单进行提交
    • 通过ajax技术访问这个url

    11.3发送请求的类型

    • get:在地址栏中直接访问这个url就是get方式。对于静态资源,我们通过的处理方式就是get请求。
    • post: 通过表单提交,可以设置form的method为post
    • delete
    • put
    • patch
    • options

    12.写一个不带任何参数的get类型接口

    12.1目标

    提供一个名为getList的接口(http://localhost:8083/getList),它以json字符串格式返回db/data.json的内容。

    12.2目录结构

    |-db
    |---data.json # 数据
    |-server.js # 你的代码
    

    12.3代码演示

    // 三要素
    // 1.引入 http 模块
    const http = require('http');
    // console.log(http);
    const path = require('path');
    // 引入模块
    const fs = require('fs');
    // 2.创建服务
    // request:本次请求
    // res : 本次响应
    const server = http.createServer((req, res) => {
        // 回调函数 : 每一次收到请求,他就执行一次
        // 1. 当你的请求是get类型,并且地址是/getList时,解析查询字符串
        // 设置响应体
        // res.setHeader('content-type','text/html;charset=utf-8')
        const { url, method } = req;
        console.log(url, method);
        if (url === "/getList" && method === "GET") {
            const pathFile = path.join(__dirname, "db", 'data.json');
            console.log(pathFile);
            res.setHeader('content-type','application/json;charset=utf8')
            const conter = fs.readFileSync(pathFile)
            res.end(conter);
        } else {
            res.statusCode = 404;
            res.end("404")
        }
    });
    
    // 3.启动服务
    server.listen(8452, () => {
        console.log('服务器启动成功');
    });
    

    注意:类型

    • req.method 可以判断请求的类型
    • res.end()的参数只能是字符串(或者是buffer),而不能是对象

    13.写一个不带任何参数的get类型接口

    13.1目标

    提供一个名为getList?name=abc的接口(http://localhost:8083/getList?name=abc),它以json字符串格式返回db/data.json的内容。

    13.2目录结构

    |-db
    |---data.json # 数据
    |-server.js # 你的代码
    

    13.3代码演示:

    // 1.引入 http 模块
    const http = require('http');
    // console.log(http);
    // 引入模块
    const fs = require('fs');
    const path = require('path');
    const ps = require("querystring");
    
    // 2.创建服务
    // request:本次请求
    // res : 本次响应
    const server = http.createServer((req, res) => {
        // 回调函数 : 每一次收到请求,他就执行一次
        const [url, queryStr] = req.url.split("?");
    
        if (url === "/getList" && req.method === "GET") {
            const qsObj = ps.parse(queryStr)
            console.log(qsObj);
            const pathFile = path.join(__dirname, "db", "data.json")
            res.setHeader('content-type', 'application/json;charset=utf8')
            const conter = fs.readFileSync(pathFile)
            const arr = JSON.parse(conter)
            const re = arr.find(function (item) {
                if(item.name === qsObj.name){
                    return true;
                }else{
                    return false;
                }
            })
            const resa = JSON.stringify(re)
            console.log(resa);
            res.end(resa)
        } else {
            res.end('你好');
        }
        // 结束本次请求
        // 设置响应体:返回给用户看的
    });
    // 3.启动服务
    server.listen(8004, () => {
        console.log('服务器启动成功');
    
    })
    
    展开全文
  • web服务器、Web中间件和Web容器的区别

    万次阅读 多人点赞 2018-11-25 20:36:21
    Web服务器 中间件 容器 总结 Web开发的选择 我们经常会被Web服务器、Web容器和Web中间件这三个概念搞混。因为我们常见的很多网站要么是由IIS搭建,要么是由Apache、Tomcat、Ngnix搭建。所以,我们会把他们都叫...

    目录

    Web服务器

    中间件

    容器

    总结

    Web开发的选择


    我们经常会被Web服务器、Web容器和Web中间件这三个概念搞混。因为我们常见的很多网站要么是由IIS搭建,要么是由Apache、Tomcat、Ngnix搭建。所以,我们会把他们都叫成是Web服务器,因为他们都提供了Web服务,可以让我们通过http协议访问到。但是又有很多地方会说Tomcat是Servlet容器,而又有很多地方会说Tomcat是Web中间件!那么,他们到底是Web服务器还是容器,还是Web中间件呢???

    怀着这个问题,我查遍了网上所有的资料,终于把这几个概念好好的整理了一下。

    Web服务器

    广义的web服务器(Web Server):提供web服务的软件或主机,即Web服务器软件或装有Web服务器软件的计算机。例如:IIS、apache、nginx等。Web服务器可以处理 HTTP 协议,响应针对静态页面或图片的请求,进行页面跳转,或者把动态请求委托其它程序(它的扩展、某种语言的解释引擎(php)、Web容器)。

    所以,我们可以把 IIS、Apache、Nginx、Tomcat等都称为Web服务器,因为他们都提供了web服务。

    中间件

    中间件(Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。中间件处在操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解决问题上的能力 。容器就是中间件的一种。

    Web中间件就是提供web应用软件和系统软件连接的软件的一个总称。

    我们来看看J2EE提出的背景:

    1、企业级应用框架的需求:在许多企业级应用中,例如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块,这些模块如果每次都由开发人员来完成的话,将会造成开发周期长和代码可靠性差等问题。于是许多大公司开发了自己的通用模块服务。这些服务性的软件系列统称为中间件。

    2、 为了通用必须要提出规范,不然无法达到通用:在上面的需求基础之上,许多公司都开发了自己的中间件,但其与用户的沟通都各有不同,从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的概念。其实J2EE就是基于JAVA技术的一系列标准。

    并且中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,在商业中间件及信息化市场主要存在微软阵营、Java阵营、开源阵营。

    所以说我们可以把Tomcat、Weblogic、Jboss等叫做Web中间件。

    相关文章:Web中间件

    容器

    容器:容器是中间件的一种,作为操作系统和应用程序之间的桥梁,给处于其中的应用程序组件提供一个环境,使应用程序直接跟容器中的环境变量交互,而不必关注其它系统问题。例如:tomcat(servlet容器),Jboss(EJB容器)。这些容器提供的接口严格遵守J2EE规范中的web application 标准。

    web容器:我们把遵守J2EE规范标准的web服务器就叫做J2EE中的web容器。处理 web服务的容器,例如tomcat(servlet容器),IIS(asp容器)。web容器用于给处于其中的应用程序组件(ASP、JSP)提供一个环境,是中间件的一个组成部分,它实现了对动态语言的解析。比如tomcat可以解析jsp,是因为其内部有一个servlet容器。

    EJB容器(Enterprise java bean ):更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

    WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而 EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如servlet不用关心http的细 节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。

    所以说,我们也可以把 IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)等叫做Web容器

    总结

    通过上面的解释,不知道你有没有搞清楚这几者之间的区别!其实,对于这些名词,也并没有一个十分清楚的概念说这个就是属于这个,而不能属于那个。他们之间很多是包含关系。

    web服务器:IIS、Apache、Nginx、Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish、Lighttpd等
    web中间件:Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish等
    web容器:IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)

    所以应该是  web服务器>web中间件>web容器

    Web开发的选择

    • 一般本地开发的话,小项目,或者是个人开发建议的话,php使用apache、asp使用IIS、jsp使用tomcat
    • 大型的项目就用 jboss 或 webloigc
    • 大项目或者商业项目一般采用:weblgoic/webshere,其他的还有 jboss、glasshfish 等

    相关文章:Web中间件



     

    展开全文
  • 搭建web服务器

    万次阅读 2018-06-18 07:38:54
    在本地pc上搭建web服务器,利用路由器,将本地pc和手机通过无线局域网组成局域网,本地ip为192.168.0.106,手机ip为192.168.101,win+r---->在cmd命令行窗口输入:ping 192.168.0.101.检查电脑和手机是否能...

    在本地pc上搭建web服务器,利用路由器,将本地pc和手机通过无线局域网组成局域网,本地ip为192.168.0.106,手机ip为192.168.101,win+r---->在cmd命令行窗口输入:ping 192.168.0.101.检查电脑和手机是否能ping通,如何能ping通,则进行下步操作,ping不通就检查网络与网卡的问题。

    下面就是如何搭建web服务器了,window其实自带了web服务器与客户端,挺好用,为了简单考虑,我直接使用window自带的IIS来搭建web服务器,首先默认情况下,IIS是没有开启的,比如telnet客户端也一样。我们先将起开启。

    -->控制面板----->程序

    ---打开或关闭window功能


    ---internet信息服务---web管理工具勾选



    现在已经完成第一步,相当于你安装了这个软件,下面就是在这个软件上搭环境

    运行这个软件,进来的界面是这样的


    搭建步骤: 

    注意: 这里就是搭建web服务器的路径,它的权限必须可读可写,我就建立在E:\test. 如果这个目录放在桌面是成功不了的。

    编写一个简单的html文件,该文件的文件格式必须是.htm 或.html,将该文件加入默认文档中,按优先级排序


    绑定ip和端口号

    最后就是启动web服务器,这里一定要留意,我们的端口设置成8080,不要设置成80,一般web服务器都设置成80,我们避免冲突,还有我们这里主要是访问我们制作的h5页面,但是如果是上传下载的话,就对格式没有多大要求,但必须将其类型加到MIME类型中去


    现在就在手机浏览器中输入192.168.0.106即可。浏览器返回的结果为


    这就是在本地搭建web服务器,利用手机浏览区访问的过程。此时手机和本地其实是在同一局域网,不存在服务器和客户端的关系,是对等关系,其实还可以搭建一种真正意义上的服务器和客户端。那就要借助广域网。这个我会在后面的文章中写到。

    总结一下:向服务器搭建,其实就是一下几点: ip-->port-->dir  说白了就是能让客户端在于服务器建立三次握手之后就可以找到服务器上的文件,实现访问。

    展开全文
  • web服务器、应用服务器和常见的服务器概念

    千次阅读 多人点赞 2020-04-17 16:36:01
    什么是web服务器,什么是应用服务器? 浏览器的编译原理是什么? http的头文件为何要这样配置? Nginx,Apache等为何要这样操作? 不同的服务器软件有什么作用? 而网上关于http的实战讲解一般都是以操作为主,涉及...

    http协议解析–绪篇

    在做开发的过程中,总是能感觉到自己对http相关的各种概念模糊不清。

    什么是web服务器,什么是应用服务器?

    浏览器的编译原理是什么?

    http的头文件为何要这样配置?

    Nginx,Apache等为何要这样操作?

    不同的服务器软件有什么作用?

    而网上关于http的实战讲解一般都是以操作为主,涉及到原理的部分大多模糊不清,自己又很少花时间去系统的学习http协议相关的内容,大多数时候都是照着配一配就行了,所以明明写了挺多代码了,对于http还是知之甚少。所以,决定写一个专题,留作笔记也以此来督促自己深入的看看http,后续有什么地方说错了,也欢迎大家指出。
    在这里插入图片描述


    热点问题

    在之前的学习中,曾经困扰我许久的问题便是:web服务器,http服务器,服务器软件,网站后台,应用服务器这些都有什么区别,与Apache,Nginx究竟是什么关系,Tomcat又是什么?

    在绪篇中首先便先讲一下这些容易混淆的概念性问题。

    web服务器

    一般我们把发出http请求的一方称作请求分,比如浏览器就是http的请求方,那么应答方就是我们常说的web服务器(web Server)。

    应该说web服务器在某些时候是一种很广泛的概念,比如在web代表一项应用软件是,web服务器有时候会被理解为软化的后台,也正是因为这样,很多人会混淆这个概念。

    在硬件层面上,web服务器可以简单的理解为另一台性能更好的主机。不过在现实生活中,不仅仅只是一台主机,而是利用反向代理、负载均衡等等技术组成的一大群机房。

    在软件层面上指的是提供web服务的应用程序。我的理解就是响应http请求,返回超文本文件等数据,或者把请求转发给后面的Tomcat、node.js等应用服务器。因此,web服务器是静态服务器。

    常见的web服务器有Apache,Nginx,Tomcat等,其实Tomcat更多的做为应用服务器使用,一般不会直接用Tomcat做web服务器。

    在这里插入图片描述

    在这里插入图片描述
    当然目前Nginx等也经常用来做反向代理服务器和负载均衡等

    http服务器

    http服务器就是指使用http协议传输资源提供服务,由于应用层通讯协议主要就是http协议,所以在普遍情况下,web服务器==http服务器

    网站后台

    可以提供数据接口等服务的应用层软件。常说的就是应用的后端,进行数据和逻辑处理。

    应用服务器

    应用程序服务器通过各种协议把商业逻辑暴露给客户端应用程序。能实现动态网页技术,也称之为应用容器,web容器等

    应用服务器不等于网站后台,但是在应用服务器上可以部署网站后台。通常,Web服务器会有插件来支持脚本语言,比如PHP、ASP等,也可以生成动态的HTTP内容。那为什么要使用应用服务器呢?

    应用服务器可以更好的相应超大用户量的访问,并杜绝sql注入等安全问题,提供动态功能的支持。

    常见的应用服务器有,Tomcat、Jetty、Undertow等。应用服务器也包含http服务

    在这里插入图片描述

    但是一般不会做为http服务器也就是web服务器使用,经常是搭配使用

    浏览器>>>>>>web服务器>>>>>应用服务器>>>>>>数据库

    在这里插入图片描述

    总结

    1. 服务器分静态服务器和动态服务器,web服务器是静态服务器,应用服务器是动态服务器
    2. 应用服务器也可以处理静态需求,但是由于没有web服务器那么专业,所以一般搭配使用,常见如(Nginx+Tomcat)
    3. Apache,Nginx等是静态服务器,是web服务器,也是web服务器软件
    4. tomcat是动态服务器,也可以称之为web容器、应用容器等
    5. 网站后台不是web服务器,但是当web做为一种应用来表达的时候,web服务器可能在口头上会被理解为后台。

    下一篇将正式开始进入http协议的学习

    展开全文
  • mqtt服务器—web服务器——web页面

    万次阅读 2019-03-30 20:15:51
    web服务器------------>web页面 详情:mqtt服务器发布主题之后,客户端订阅主题,通过回调类拿到数据保存到数据库,接着web服务器读取数据库中的数据显示在页面。 大部分内容复制粘贴而来,加了一些自己的见解...
  • 实战WEB 服务器(JAVA编写WEB服务器

    万次阅读 热门讨论 2010-04-21 17:09:00
    一、超文本传输协议 1.1 HTTP请求 1.2 HTTP应答 二、Socket类 三、ServerSocket类 四、Web服务器实例 4.1 HttpServer类 4.2 Request类 4.3 Response类 五、编译和运行 =================== 正文: =================...
  • Web服务器和http请求

    千次阅读 2017-04-07 17:07:35
    一、web服务器 目前最主流的三个Web服务器是Apache、Nginx、 IIS。 Web服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。1、Web服务器具有以下特点:  Web服务器是一种被动程序:只有当...
  • Web服务器配置

    千次阅读 2018-04-28 12:45:07
    课程名称服务器配置与管理实验成绩 实验名称Web服务器配置学号 姓名;指导老师-龚蕾 班级 日期 实验目的:1.掌握liunx系统的基本命令2 掌握Web服务器配置的基本原理3.掌握Apache服务器的安装与配制方法和客户端...
  • web 服务器有哪些

    万次阅读 多人点赞 2018-08-27 16:53:49
    什么是web服务器 "网络服务"(Web Service)的本质,就是通过网络调用其他网站的资源。 Web Service架构和云 如果一个软件的主要部分采用了"网络服务",即它把存储或计算环节"外包"...
  • 万维网: 万维网英文全称 World Wide Web(简写:www,重点词是Web),也叫做:Web、WWW...全球各种信息和数据组成的一个大的网络信息池,就是万维网,说明白点就是数据共享 因特网(Internet) 英特网提供的主要服务
  • Web应用程序  (1)什么是Web应用程序  应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览 器端/服务器端应用程序,这类应用程序一般借助浏览器来运行。 ...
  • web开发 web:网页 静态web html,css 提供给所有人看的数据始终不会发生变化 动态web 几乎所有的网站 提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同 技术栈:...
  • web服务器学习体会

    千次阅读 2016-12-01 15:10:56
    web服务器其实就是一个应答器,他可以按照预先程序的设计响应客户端浏览器的所有问题。在这个响应的过程中,在网络上使用的是http协议,当然为了安全性后来出现了https协议,而传输的内容时符合HTML标准的文档。当前...
  • Linux下Web服务器开发

    千次阅读 2016-07-10 13:53:14
    web服务器开发,练习指南。
  • HTTP学习与Web服务器编程

    千次阅读 2017-11-20 00:00:28
    1)编写一个简单的Web服务器; 2)实现的服务器应能与标准的浏览器进行简单的交互; 3)记录浏览器与服务的交互过程; 4)利用HTML语言编写网页浏览器可通过编写的Web服务器正常访问该网页; 5)支持多用户并发...
  • 保护 Web 服务器

    千次阅读 2004-08-13 17:28:00
    保护 Web 服务器更新日期: 2004年04月12日本页内容本模块内容目标适用范围如何使用本模块概述威胁与对策确保 Web 服务器安全的方法IIS 和 .NET Framework 安装注意事项安装建议确保 Web 服务器安全的步骤步骤 1:...
  • 简单的嵌入式web服务器设计

    千次阅读 2019-06-01 17:54:18
    实验原理 WEB浏览器 ...个人电脑上常见的网页浏览器包括Internet Explorer、Firefox、... Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站...
  • web服务器apache架构与原理

    千次阅读 2017-10-12 09:33:46
    web服务器apache架构与原理
  • Web服务器性能测试介绍

    千次阅读 2013-12-15 23:34:10
     随着Internet的快速发展,Web服务器已成为Web系统的重要组成部分,同时也是影响Web系统性能的主要因素,因此Web服务器性能的好坏一直是人们关注的问题。同时,Web及其应用程序的普及对Web服务器提出了越来越高的...
  • web服务器基本原理及Tomcat配置

    千次阅读 2017-03-16 21:32:57
    一、Web服务器基本知识 转自:http://www.cnblogs.com/fnng/archive/2012/11/08/2761713.html  在开始了解Apache前,我们先熟悉一下web服务器,因为apache也是web服务器的一种。  Web系统由客户端(浏览器)和...
  • 什么是HTTP协议? 客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守
  • 什么是Web?及web服务器原理

    千次阅读 2016-12-10 23:53:06
    什么是WebWeb就是一种超文本信息系统,Web的一个主要的概念就是超文本连接,它使得文本不再象一本书一样是固定的线性的。而是可以从一个位置跳到另外的位置。你可以从中获取更多的信息。可以转到别的主题上。...
  • 最近在看书的过程中,发现了许多有关Web服务器Web服务器应用,J2EE应用服务器以及容器的相关知识点,为了不引起混淆,将通过该篇博客从概念定义功能原理上对这几个名词做一详细的阐述。 Web服务器是什么 Web...
  • Web服务器脚本技术

    千次阅读 2008-08-24 18:12:00
    Web服务器脚本技术概述CGI、ASP、JSP、PHPCGIn 基本概念CGI(Common Gateway Interface)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上:l 通过Internet把用户请求送到...
  • Web服务器的工作原理及其相关协议

    千次阅读 2016-04-21 16:52:30
    通俗的说,Web服务器是可以向发出请求的浏览器提供文档的程序。 1、服务器是一种被动程序:只有当Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应。 2 、最常用的Web服务器是Apache和...
  • JAVA简易WEB服务器(一)

    千次阅读 2016-02-22 16:25:05
    这一篇博客开始将和大家一起使用JAVA编写一个简易的Web服务器。 众所周知Web服务器与客户端之间的通信是使用HTTP协议的。HTTP是一个客户端和服务器端请求和应答的标准(TCP)。因为HTTP协议是基于TCP协议的,所以我...
  • Node.js 搭建Web服务器和Web客户端

    千次阅读 2016-09-05 11:53:31
    服务器定义 Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。  目前最...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 303,493
精华内容 121,397
关键字:

web服务器组成