精华内容
下载资源
问答
  • 今天学习web service,王治国老师讲,学习web service之前,对它web service一点概念都没有,不知道什么。王老师举了很多现实社会原理相近例子,来说明web service的原理功能,也就很容易理解了。   ...

       今天学习web service,王治国老师讲的,学习web service之前,对它web service一点概念都没有,不知道是做什么用的。王老师举了很多现实社会原理相近的例子,来说明web service的原理和功能,也就很容易理解了。
        从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个 Web service 的应用程序叫做客户。例如,你想创建一个Web service ,它的作用是返回当前的天气情况。那么你可已建立一个ASP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天 气。要调用这个ASP页面,客户端需要发送下面的这个HTTP GET请求:
    http://host.company.com/weather.asp?zipcode=xxxxx   。返回的数据就应该是这样: 4月9日,晴 。这个ASP页面就应该可以算作是Web service 了。因为它基于HTTP GET请求,暴露出了一个可以通过Web调用的API。当然,Web service 还有更多的东西。 下面是对Web service 更精确的解释: Web services是建立可互操作的分布式应用程序的新平台。作为一个Windows程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程 序。COM是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。 Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。 例如一套系统可以分很多模块,每个模块采用不同的语言编写,然后使用Web service就可以把他们整合到一起
       Web service的功能:
         1. 软件变服务,例如微软的office,有些人买了可能它里面的word,excel,Access等都会用到,而有些人可能只用到word,并且他们使用 的频率也不同。可是他们都要花同样的钱去买一套office,软件变服务就是微软在线版提供office服务,人们可以根据在线使用的模块,时间进行付 费。
        2.整合孤立的数据孤岛,一个大公司,不同的部门有不同的软件系统用于实现办公自动化,可是不同部门之间的交流还要工作人员进行交流,不能实现自动化。这 样不同的部门就形成了一个个数据孤岛, Web service可以把这些数据孤岛整合到一个系统,实现企业内部的办公自动化。
       3 互连设备与异构系统
       4 EAI/B2B应用
         EAI(企业应用集成)将进程、软件、标准和硬件联合起来,在两个或更多的企业系统之间实现无缝集成,使它们就像
    一个整体一样。尽管EAI常常表现为对一个商业实体(例如一家公司)的信息系统进行业务应用集成,但当在多个企业
    系统之间进行商务交易的时候,EAI也表现为不同公司实体之间的企业系统集成,例如B2B的电子商务。
    B2B是企业与企业之间通过互联网进行产品、服务及信息的交换。

    目前使用的Web service 的缺点
      互操作性差
      紧密耦合
      局限在Intranet的应用,Intranet即企业内部网络
    Web service 的优点
     跨不同语言
     跨异构应用
     跨异构平台
     跨Internet的互操作技术
     “软件变服务“远景的支撑技术

    展开全文
  • 今天学习web service,王治国老师讲,学习web service之前,对它web service一点概念都没有,不知道什么。王老师举了很多现实社会原理相近例子,来说明web service的原理功能,也就很容易理解了。 从...

    今天学习web service,王治国老师讲的,学习web service之前,对它web service一点概念都没有,不知道是做什么用的。王老师举了很多现实社会原理相近的例子,来说明web service的原理和功能,也就很容易理解了。
        从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web service 的应用程序叫做客户。例如,你想创建一个Web service ,它的作用是返回当前的天气情况。那么你可已建立一个ASP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天气。要调用这个ASP页面,客户端需要发送下面的这个HTTP GET请求: http://host.company.com/weather.asp?zipcode=xxxxx  。返回的数据就应该是这样: 4月9日,晴 。这个ASP页面就应该可以算作是Web service 了。因为它基于HTTP GET请求,暴露出了一个可以通过Web调用的API。当然,Web service 还有更多的东西。 下面是对Web service 更精确的解释: Web services是建立可互操作的分布式应用程序的新平台。作为一个Windows程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程序。COM是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。 Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。 例如一套系统可以分很多模块,每个模块采用不同的语言编写,然后使用Web service就可以把他们整合到一起
       Web service的功能:
         1. 软件变服务,例如微软的office,有些人买了可能它里面的word,excel,Access等都会用到,而有些人可能只用到word,并且他们使用的频率也不同。可是他们都要花同样的钱去买一套office,软件变服务就是微软在线版提供office服务,人们可以根据在线使用的模块,时间进行付费。
        2.整合孤立的数据孤岛,一个大公司,不同的部门有不同的软件系统用于实现办公自动化,可是不同部门之间的交流还要工作人员进行交流,不能实现自动化。这样不同的部门就形成了一个个数据孤岛, Web service可以把这些数据孤岛整合到一个系统,实现企业内部的办公自动化。
       3 互连设备与异构系统
       4 EAI/B2B应用
         EAI(企业应用集成)将进程、软件、标准和硬件联合起来,在两个或更多的企业系统之间实现无缝集成,使它们就像
    一个整体一样。尽管EAI常常表现为对一个商业实体(例如一家公司)的信息系统进行业务应用集成,但当在多个企业
    系统之间进行商务交易的时候,EAI也表现为不同公司实体之间的企业系统集成,例如B2B的电子商务。
    B2B是企业与企业之间通过互联网进行产品、服务及信息的交换。

    目前使用的Web service 的缺点
      互操作性差
      紧密耦合
      局限在Intranet的应用,Intranet即企业内部网络
    Web service 的优点
     跨不同语言
     跨异构应用
     跨异构平台
     跨Internet的互操作技术
     “软件变服务“远景的支撑技术


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/TuiRoger/archive/2009/04/09/4060906.aspx

    转载于:https://www.cnblogs.com/hunterzou/archive/2011/06/19/2084737.html

    展开全文
  • 2:nginx工作原理是什么?3:nginx模块从结构上分为哪几类?4:nginx模块从功能分为哪几类?5:nginx进程模型分为哪几个工作模式?6:nginx启动后,master进程和worker进程都是干嘛?7:Nginx和FastCGI...

    前言

    • Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
    • 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

    1:nginx的组成结构是什么?

    Nginx 由内核和模块组成。

    2:nginx的工作原理是什么?

    • Nginx 本身做的工作实际很少,当它接到一个 HTTP 请求时, 它仅仅是通过查找配置文件将此次请求映射到一个 location block,而此 location 中所配 置的各个指令则会启动不同的模块去完成工作,因此模块可以看做 Nginx 真正的劳动工作者。
    • 通常一个 location 中的指令会涉及一个 handler 模块和多个 filter 模块(当然,多个 location 可以复用同一个模块)。handler 模块负责处理请求,完成响应内容的生成,而 filter 模块对响应内容进行处理。 用户根据自己的需要所开发的模块都属于第三方模块。正是有了这么多模块的支撑, Nginx 的功能才会如此强大。

    3:nginx模块从结构上分为哪几类?

    • Nginx 的模块从结构上分为核心模块、基础模块和第三方模块

    • 核心模块:HTTP 模块、EVENT 模块和 MAIL 模块;

    • 基础模块:HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite 模块;

    • 第三方模块:HTTP Upstream Request Hash 模块、Notice 模块和 HTTP Access Key 模 块。

    4:nginx模块从功能上的分为哪几类?

    • Handlers(处理器模块)

    • Filters(过滤器模块)

    • Proxies(代理类模块)

    • Handlers(处理器模块):此类模块直接处理请求,并进行输出内容和修改 headers 信息等操作。Handlers 处理器模块一般只能有一个;

    • Filters(过滤器模块):此类模块主要对其他处理器模块输出的内容进行修改操作,最后由 Nginx 输出;

    • Proxies(代理类模块):此类模块是 Nginx 的 HTTP Upstream 之类的模块,这些模块主要与后端一些服务比如 FastCGI 等进行交互,实现服务代理和负载均衡等功能。

    5:nginx的进程模型分为哪几个工作模式?

    • Nginx 的进程模型 在工作方式上,Nginx 分为单工作进程和多工作进程两种模式。

    • 在单工作进程模式下,除主进程外,还有一个工作进程,工作进程是单线程的;

      在多工作进程模式下,每个工作进程包含多个线程。Nginx 默认为单工作进程模式。

    6:nginx启动后,master进程和worker进程都是干嘛的?

    • Nginx 在启动后,会有一个 master 进程和多个 worker 进程。

    • master 进程主要用来管理 worker 进程,主要包含:

      • 接收来自外界的信号

      • 向各 worker 进程发送信号

      • 监控 worker 进程的运行状态

      • 当 worker 进程退出后(异常情况下),会自动 重新启动新的 worker 进程。

    • master 进程充当整个进程组与用户的交互接口,同时对进程进行监护。

    • 它不需要处理网络事件,不负责业务的执行,只会通过管理worker 进程来实现重启服务、平滑升级、更换日志文件、配置文件实时生效等功能。

    7:Nginx和FastCGI的运行原理是什么?

    • Nginx 不支持对外部程序的直接调用或者解析,所有的外部程序(包括 PHP)必须通过FastCGI 接口来调用

    • FastCGI 接口在 Linux 下是 socket(这个 socket 可以是文件 socket, 也可以是 ip socket)

    • wrapper 为了调用 CGI 程序,还需要一个 FastCGI 的 wrapper(wrapper 可以理解为用于启动另一个程序的程序),这个 wrapper 绑定在某个固定 socket 上,如端口或者文件 socket

    • 当 Nginx 将 CGI 请求发送给这个 socket 的时候,通过 FastCGI 接口,wrapper 接收到请求,然后 Fork(派生)出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据

    • 接着 wrapper 再将返回的数据通过 FastCGI 接口,沿着固定的 socket传递给 Nginx;最后 Nginx 将返回的数据(html 页面或者图片)发送给客户端。

    8:工作原理图

    在这里插入图片描述

    展开全文
  • 什么是前端路由?...在 Web 前端单页应用 SPA(Single Page Application)中,路由描述的是 URL 与 UI 之间映射关系,这种映射单向,即 URL 变化引起 UI 更新(无需刷新页面)。如何实现前端路由?要实现前...

    点击上面 时代Java关注我们,

    关注新技术,学习新知识!

    什么是前端路由?

    路由的概念来源于服务端,在服务端中路由描述的是 URL 与处理函数之间的映射关系。

    在 Web 前端单页应用 SPA(Single Page Application)中,路由描述的是 URL 与 UI 之间的映射关系,这种映射是单向的,即 URL 变化引起 UI 更新(无需刷新页面)。

    如何实现前端路由?

    要实现前端路由,需要解决两个核心问题:

    1. 如何改变 URL 却不引起页面刷新?

    2. 如何检测 URL 变化了?

    下面分别使用 hash 和 history 两种实现方式回答上面的两个核心问题。

    hash 实现

    1. hash 是 URL 中 hash (#) 及后面的那部分,常用作锚点在页面内进行导航,改变 URL 中的 hash 部分不会引起页面刷新

    2. 通过 hashchange 事件监听 URL 的变化,改变 URL 的方式只有这几种:通过浏览器前进后退改变 URL、通过标签改变 URL、通过window.location改变URL,这几种情况改变 URL 都会触发 hashchange 事件

    history 实现

    1. history 提供了 pushState 和 replaceState 两个方法,这两个方法改变 URL 的 path 部分不会引起页面刷新

    2. history 提供类似 hashchange 事件的 popstate 事件,但 popstate 事件有些不同:通过浏览器前进后退改变 URL 时会触发 popstate 事件,通过pushState/replaceState或标签改变 URL 不会触发 popstate 事件。好在我们可以拦截 pushState/replaceState的调用和标签的点击事件来检测 URL 变化,所以监听 URL 变化可以实现,只是没有 hashchange 那么方便。

    原生JS版前端路由实现

    基于上节讨论的两种实现方式,分别实现 hash 版本和 history 版本的路由,示例使用原生 HTML/JS 实现,不依赖任何框架。

    基于 hash 实现

    运行效果:

    4a98947022ca2440238380aa4ae26900.png

    HTML 部分:

    JavaScript 部分:

    // 页面加载完不会触发 hashchange,这里主动触发一次 hashchange 事件
    window.addEventListener('DOMContentLoaded', onLoad)
    // 监听路由变化
    window.addEventListener('hashchange', onHashChange)
    // 路由视图
    var routerView = null
    function onLoad () {
      routerView = document.querySelector('#routeView')
      onHashChange()
    }
    // 路由变化时,根据路由渲染对应 UI
    function onHashChange () {
      switch (location.hash) {
        case '#/home':
          routerView.innerHTML = 'Home'
          return
        case '#/about':
          routerView.innerHTML = 'About'
          return
        default:
          return
      }

    }

    基于 history 实现

    运行效果:

    26019ce9d22f8a181464da2fc22c2abc.png

    HTML 部分:

    JavaScript 部分:

    // 页面加载完不会触发 hashchange,这里主动触发一次 hashchange 事件
    window.addEventListener('DOMContentLoaded', onLoad)
    // 监听路由变化
    window.addEventListener('popstate', onPopState)
    // 路由视图
    var routerView = null
    function onLoad () {
      routerView = document.querySelector('#routeView')
      onPopState()
     href="">  // 拦截  标签点击事件默认行为, 点击时使用 pushState 修改 URL并更新手动 UI,从而实现点击链接更新 URL 和 UI 的效果。
      var linkList = document.querySelectorAll('a[href]')
      linkList.forEach(el => el.addEventListener('click', function (e) {
        e.preventDefault()
        history.pushState(null, '', el.getAttribute('href'))
        onPopState()
      }))
    }
    // 路由变化时,根据路由渲染对应 UI
    function onPopState () {
      switch (location.pathname) {
        case '/home':
          routerView.innerHTML = 'Home'
          return
        case '/about':
          routerView.innerHTML = 'About'
          return
        default:
          return
      }

    }

    React 版前端路由实现

    基于 hash 实现

    运行效果:

    a58d75876622d8672c53b482e26eda72.png

    使用方式和 react-router 类似:

      
    homeabout 

    Home

    } /> 

    About

    } />

    BrowserRouter 实现

    export default class BrowserRouter extends React.Component {
      state = {
        currentPath: utils.extractHashPath(window.location.href)
      };
      onHashChange = e => {
        const currentPath = utils.extractHashPath(e.newURL);
        console.log("onHashChange:", currentPath);
        this.setState({ currentPath });
      };
      componentDidMount() {
        window.addEventListener("hashchange", this.onHashChange);
      }
      componentWillUnmount() {
        window.removeEventListener("hashchange", this.onHashChange);
      }
      render() {
        return (
            {this.props.children}
        );
      }
    }

    Route 实现

    export default ({ path, render }) => (
        {({currentPath}) => currentPath === path && render()}
    );

    Link 实现

    export default ({ to, ...props }) => ;

    基于 history 实现

    运行效果:

    dccbed233e2851e4b7ade39707f1e052.png

    使用方式和 react-router 类似:

      
    homeabout 

    Home

    } /> 

    About

    } />

    HistoryRouter 实现

    export default class HistoryRouter extends React.Component {
      state = {
        currentPath: utils.extractUrlPath(window.location.href)
      };
      onPopState = e => {
        const currentPath = utils.extractUrlPath(window.location.href);
        console.log("onPopState:", currentPath);
        this.setState({ currentPath });
      };
      componentDidMount() {
        window.addEventListener("popstate", this.onPopState);
      }
      componentWillUnmount() {
        window.removeEventListener("popstate", this.onPopState);
      }
      render() {
        return (
            {this.props.children}
        );
      }
    }

    Route 实现

    export default ({ path, render }) => (
        {({currentPath}) => currentPath === path && render()}
    );

    Link 实现

    export default ({ to, ...props }) => (
        {({ onPopState }) => (        href=""
            {...props}
            onClick={e => {
              e.preventDefault();
              window.history.pushState(null, "", to);
              onPopState();
            }}
          />
        )}
    );

    Vue 版本前端路由实现

    基于 hash 实现

    运行效果:

    70ac2e90f601faa538fd91bb3e4f7da0.png

    使用方式和 vue-router 类似(vue-router 通过插件机制注入路由,但是这样隐藏了实现细节,为了保持代码直观,这里没有使用 Vue 插件封装):

        
    homeabout

    const routes = {
      '/home': {
        template: '

    Home

    '
      },
      '/about': {
        template: '

    About

    '
      }
    }
    const app = new Vue({
      el: '.vue.hash',
      components: {
        'router-view': RouterView,
        'router-link': RouterLink
      },
      beforeCreate () {
        this.$routes = routes
      }
    })

    router-view 实现:

    router-link 实现:

    基于 history 实现

    运行效果:

    c8df6c45ceaa0eb0c6f0286c812630e1.png

    使用方式和 vue-router 类似:

        
    homeabout

    const routes = {
      '/home': {
        template: '

    Home

    '
      },
      '/about': {
        template: '

    About

    '
      }
    }
    const app = new Vue({
      el: '.vue.history',
      components: {
        'router-view': RouterView,
        'router-link': RouterLink
      },
      created () {
        this.$routes = routes
        this.boundPopState = this.onPopState.bind(this)
      },
      beforeMount () {
        window.addEventListener('popstate', this.boundPopState) 
      },
      beforeDestroy () {
        window.removeEventListener('popstate', this.boundPopState) 
      },
      methods: {
        onPopState (...args) {
          this.$emit('popstate', ...args)
        }
      }
    })

    router-view 实现:

    router-link 实现:

    小结

    前端路由的核心实现原理很简单,但是结合具体框架后,框架增加了很多特性,如动态路由、路由参数、路由动画等等,这些导致路由实现变的复杂。本文去粗取精只针对前端路由最核心部分的实现进行分析,并基于 hash 和 history 两种模式,分别提供原生JS/React/Vue 三种实现,共计六个实现版本供参考,希望对你有所帮助。

    展开全文
  • 题目点评 三角形图标在网页设计很常见,属于基本常识题,只要在练习做到过这个功能都能回答出来,可以把你做过思路描述出来就可以了,本题难易程度为简单 答题要点 1.采用的是均分原理 盒子都一...
  • 它的实现原理是什么? 什么是Nginx? Nginx 是一款开源的高性能轻量级 Web 服务器(也叫 HTTP 服务器),它主要提供的功能是:反向代理、负载均衡和HTTP 缓存。它于 2004 年首次公开发布,2011 年成立同名公司
  • koa2继express之后,node的又一个主流的web框架,相比于express,koa只保留了核心的中间件处理逻辑,去掉了路由、模版以及一些其他的功能一个基于node实现的web框架,特点优雅、简介、健壮、体积小、表现力...
  • 本文将深入探讨Spring框架一部分——Spring Web MVC强大功能及其内部工作原理。涉及源代码可以在GitHub上找到。项目安装在本文中,我们将使用最新、最好Spring Framework 5。我们将重点介绍Spring经典Web...
  • java web Session会话技术(原理图解+功能+与Cookie区别+基本使用) 这我关于会话技术第二篇文章,对 Cookie有不了解兄弟可以点击下方Cookie跳转 Cookie链接(点击跳转) 会话技术 类似于生活中两个人聊天...
  • WAF很受欢迎,它保护Web应用程序复杂解决方案,涵盖了所有防护任务。 Web应用程序开发人员可以在某些安全方面依赖WAF原因。 尽管如此,WAF可已被绕过。 常见waf厂商:长亭科技、安恒信息、Fortinet、铱...
  • Servlet的原理是什么

    2016-06-09 20:23:49
    [1]其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义Servlet指Java语言实现一个接口,广义Servlet指任何实现了这个Servlet接口类,一般情况下,人们将Servlet理解为后者。Servlet运行于...
  • web服务器原理

    2019-10-07 20:02:35
    什么是web服务器? 在Mosaic浏览器(通常被认为第一个图形化的web浏览器)和超链接内容初期,演变出了“web服务器”新概念,它通过HTTP协议来提供静态页面内容和图片服务。在那个时候,大多数内容都静态...
  • 什么是前端路由?...在 Web 前端单页应用 SPA(Single Page Application)中,路由描述的是 URL 与 UI 之间映射关系,这种映射单向,即 URL 变化引起 UI 更新(无需刷新页面)。如何实现前端路由?要实现前...
  • 一、搜索引擎工作基本原理搜索引擎根据以下原则计算:首先,我们知道在web浏览器、百度浏览器、google浏览器、360浏览器中都配置了不同搜索引擎。它们都有一个共同点,一开始捕获一个模块,然后这个模块就像...
  • Squid是什么,Squid工作原理是什么 Squid是什么  Squid是一种用来缓冲Internet数据软件。它是这样实现其功能的,接受来自人们需要下载目标(object)请求并适当地处理这些请求。也就是说,如果一个人想...
  • 它的实现原理是什么? 回答: 在正式开始之前,我们先来了解一下什么是 Nginx? Nginx 是一款开源的高性能轻量级 Web 服务器(也叫 HTTP 服务器),它主要提供的功能是:反向代理、负载均衡和H
  • Web服务器是什么意思?Web服务器Web服务器多种定义和解读WWWWeb服务器工作原理 Web服务器 Web服务器,一般是指“网站服务器”,是指驻留于互联网上某种类型计算机程序。Web服务器可以向Web浏览器等客户端提供...
  • 响应式网站设计(Responsive Web design)理念:集中创建页面图片排版大小,可以智能地根据用户行为以及 使用设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相对应布局,无论用户正在使用笔记本还是iPad,...
  • HTTP协议是什么 HTTP是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用协议,并由某一运行在用户空间应用程序来实现其功能。HTTP是一种协议规范,这种规范记录在文档上,为真正通过HTTP协议进行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 925
精华内容 370
关键字:

web的功能原理是什么