web服务器

web框架

喜你入骨 提交于 2020-03-24 21:48:11
Web框架本质   众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 #!/usr/bin/env python #coding:utf-8 import socket def handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n") client.send("Hello, Seven") def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('localhost',8000)) sock.listen(5) while True: connection, address = sock.accept() handle_request(connection) connection.close() if __name__ == '__main__': main() 上述通过socket来实现了其本质,而对于真实开发中的python web程序来说,一般会分为两部分:服务器程序和应用程序。服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理。应用程序则负责具体的逻辑处理

servlet的执行原理与生命周期

依然范特西╮ 提交于 2020-03-24 08:12:15
3 月,跳不动了?>>> 一、先从servlet容器说起:大家最为熟悉的servlet容器就是Tomcat ,Servlet 容器是如何管理 Servlet? 先看一下tomcat的容器模型: 从上图可以看出 Tomcat 的容器分为四个等级,真正管理Servlet 的容器是Context 容器,一个 Context 对应一个 Web 工程 Tomcat 的容器等级中,Context 容器是直接管理 Servlet 在容器中的包装类Wrapper(StandardWrapper)的容器,所以 Context 容器如何运行将直接影响 Servlet 的工作方式。 这里解释一下servlet的包装类:StandardWrapper,这里有个疑问,为什么要将 Servlet 包装成 StandardWrapper 而不直接是 Servlet 对象。因为StandardWrapper 是 Tomcat 容器中的一部分,它具有容器的特征,而 Servlet 为一个独立的 web 开发标准,不应该强耦合在 Tomcat 中。 除了将 Servlet 包装成 StandardWrapper 并作为子容器添加到 Context 中,其它的所有 web.xml 属性都被解析到 Context 中,所以说 Context 容器才是真正运行 Servlet 的 Servlet 容器。一个 Web

浅谈SPA

萝らか妹 提交于 2020-03-23 07:33:07
  最近一直在学习关于Vue的一些知识,由于遇到了问题,去网上查找资料,收获颇丰,在此分享。 1. 什么是SPA?   单页Web应用(single page web application, SPA),就是只有一张Web页面的应用,是加载单个HTML页面并在用户与应用程序交互时动态更新该页面的Web应用程序,是指在浏览器中运行的应用,在使用期间不会重新加载页面。像所有的应用一样,它旨在帮助用户完成任务,比如“编写文档”或者“管理Web服务器”。可以认为单页应用是一种从Web服务器加载的富客户端。   速度:更好的用户体验,让用户在web app感受native app的速度和流畅,   MVC:经典MVC开发模式,前后端各负其责,后端只需要提供数据接口   ajax:重前端,业务逻辑全部在本地操作,数据都需要通过AJAX同步、提交。   路由:在URL中采用#号来作为当前视图的地址,改变#号后的参数,页面并不会重载,这个也就是哈希。      SPA也是当今网站开发技术的一种趋势和潮流,毕竟前端三大框架不是盖的~~,很多的传统网站都在或者已经转型为单页Web应用,新的单页Web应用网站(包括移动端平台上面的)也雨后春笋涌现出来。   单页Web应用和前端工程师们息息相关,因为主要的变革发生在浏览器端,用到的技术其实还是HTML+CSS+JavaScript,所有的浏览器都原生支持

XMLHTTPRequest状态status完整列表

北战南征 提交于 2020-03-23 02:32:23
AJAX中请求远端文件、或在检测远端文件是否掉链时,都需要了解到远端服务器反馈的状态以确定文件的存在 与否。 当然,在我们平常浏览网页时,也会发现一些文件不存在时显示为“404错误”,这就是常见的Http请求状态(status)   Web服务器响应浏览器或其他 客户 程序的请求时,其应答一般由以下几个部分组成:一个状态行,几个应答头,一个空行,内容文档。下面是一个最 简单 的应答:    状态行包含HTTP版本、状态代码、与状态代码对应的简短说明信息。在大多数情况下,除了Content-Type之外的所有应答头都是可选的。但 Content-Type是必需的,它描述的是后面文档的MIME类型。虽然大多数应答都包含一个文档,但也有一些不包含,例如对HEAD请求的应答永远 不会附带文档。有许多状态代码实际上用来标识一次失败的请求,这些应答也不包含文档(或只包含一个简短的错误信息说明)。   当用户试图通过 HTTP 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。状态代码可以指明具体请求是否已成功,还可以揭示请求失败的确切原因。 1xx - 信息提示 这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。 ·0 - 本地响应成功。  · 100 - Continue

一、office web apps 部署

懵懂的女人 提交于 2020-03-22 09:22:40
原文出处:http://www.cnblogs.com/yanweidie/p/4516164.html 原文出处:https://www.cnblogs.com/poissonnotes/p/3238238.html 下面的安装步骤很重要,不按顺序安装可能出现未知错误,很难解决,所以建议按照下面步骤进行安装。 注意:安装Office Web Apps的服务器除了Office Web Apps之外,不能安装其他应用。包括不能安装Office,lync, ,sharepoint等应用,即要单独部署 微软的office web apps方案 使用该方案的好处:   1.现有代码改动量很小,几乎可以忽略不计。   2.部署只需一台服务器即可,如果要整合到自己项目只需自己编写提供两个Web服务,CheckFileInfo服务、GetFile服务;   3.支持文档类型很全面,doc,ppt,xls,docx,pptx,xlsx,pdf。   4.手机和pc都支持,支持文档缓存,分页浏览。 安装部署步骤   介绍完特性以后,下面介绍服务的安装部署。个人感觉初次部署可能会觉得比较困难,因为这个服务限制还是很多的。 服务器环境要求   1.转换文档需要两台服务器,一台为转换server,另外一台为域控server。(安装office web apps的服务器必须加域才能安装成功

JavaWeb Servlet

回眸只為那壹抹淺笑 提交于 2020-03-19 13:42:18
1. Servlet 介绍 1.1. 百度百科 Servlet是在服务器上运行的小程序。这个词是在Java applet的环境中创造的,Java applet是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。 服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口( CGI(Common Gateway Interface))应用程序完成的。然而,在服务器上运行Java,这种程序可使用Java编程语言实现。在通信量大的服务器上,Javaservlet的优点在于它们的执行速度更快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而 无需 创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。 1.2. 维基百科 Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口 ,广义的 Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。 Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求

第一章 Java Web应用开发概述

佐手、 提交于 2020-03-17 10:59:00
第一章 Java Web应用开发概述 知识点: (1) 了解 C/S 结构和 B/S 结构 (2) 理解 Web 应用程序的工作原理 (3) 了解 Web 应用的客户端应用技术 (4) 了解 Web 应用的服务器端应用技术 (5) 了解 Java Web 成功案例 (6) 了解 Java Web 开发的常用网上资源 本章概述: 随着网络技术的迅猛发展,国内外的信息化建设已经进入了以 Web 应用开发为核心的阶段。与此同时, Java 语言也在不断完善优化,更适合开发 Web 应用。因此,越来越多的程序员或编程爱好者走上了 Java Web 应用开发之路 。 1.1 程序开发体系结构 随着网络技术的不断发展,单机的软件程序已难以满足网络计算的需要。为此,各种各样的网络程序开发体系结构应运而生。其中,运用最多的网络应用程序开发体系结构可以分为两种,一种是基于客户端 / 服务器的 C/S 结构,另一种是基于浏览器 / 服务器的 B/S 结构。下面进行详细介绍。 1.1.1 C/S 体系结构介绍 C/S 是 Client/Server 的缩写,即客户端 / 服务器结构。在这种结构中,服务器通常采用高性能的 PC 机或工作站,并采用大型数据库系统(如 Oracle 或 SQL Server ),客户端则需要安装专用的客户端软件,如图 1.1 所示。这种结构可以充分利用两端硬件环境的优势

大型网站采用的具有稳定性的系统构架

≡放荡痞女 提交于 2020-03-15 04:47:07
千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性? 首先讨论一下大型网站需要注意和考虑的问题。 数据库 海量数据处理:负载量不大的情况下select、delete和update是响应很迅速的,最多加几个索引就可以搞定,但千万级的注册用户和一个设计不好的多对多关系将带来非常严重的性能问题。另外在高UPDATE的情况下,更新一个聚焦索引的时间基本上是不可忍受的。索引和更新是一对天生的冤家。 高并发死锁:平时我们感觉不到,但数据库死锁在高并发的情况下的出现的概率是非常高的。 文件存储的问题:大型网站有海量图片数据、视频数据、文件数据等等,他们如何存储并被有效索引?高并发的情况下IO的瓶颈问题会迅速显现。也许用RAID和专用存贮 服务器 能解决眼下的问题,但是还有个问题就是各地的访问问题,也许我们的服务器在北京,可能在云南或者新疆的访问速度如何解决?如果做分布式,那么我们的文件索引以及架构该如何规划。 接下来讨论大型网站的底层系统架构,来有效的解决上述问题。 毋庸置疑,对于规模稍大的网站来说,其背后必然是一个服务器集群来提供网站服务,例如,2004年eBay的服务器有2400台,估计现在更多。当然,数据库也必然要和应用服务分开,有单独的数据库服务器集群。对于像淘宝网这样规模的网站而言,就是应用也分成很多组。 下面

Tomcat 简介

会有一股神秘感。 提交于 2020-03-13 00:50:02
Tomcat 是在SUN 公司的JSWDK(JavaServer Web DevelopmentKit ,是SUN公司推出的小型Servlet/JSP调试工具)的基础上发展起来的一个优秀的Servlet容器,Tomcat本身完全用java语言编写。 Servlet是一种运行在服务器上的小插件,他所具有的的以下特点: 1、提供了可被服务器加载并执行的程序代码,并服务于来自客户端的请求。 2、Servlet服务器必须支持java。 3、Servlet不依赖浏览器,是允许在服务器端,所以不管浏览器是否支持java,都能请求访问servlet。 Tomcat做为Servlet的容器基本功能如图一 图一 Servlet 的规范规定Servlet不仅可以运行在基于HTTP协议的Web服务器上,还可以运行在基于其他应用协议的服务器上。不过,目前Servlet主要运行在Web服务器上,用来扩展Web服务器的功能。Servlet规范规定,Servlet容器响应客户请求访问特定的Servlet的流程如下: 1、客户发出要求访问特定的Servlet的请求。 2、Servlet 容器接收到客户请求并解析。 3、Servlet 容器创建一个ServletRequest对象,在ServletRequest对象中包含了客户请求信息及其他关于客户的信息,如请求头,请求正文,以及客户机的IP地址等。 4

CGI FastCGI Nginx

守給你的承諾、 提交于 2020-03-12 13:40:28
CGI 什么是CGI CGI全称通用网关接口,是一种让客户端(web浏览器)与web服务器(nginx等)程序进行通信(数据传输)的协议 用来规范web服务器传输到php解释权中的数据类型以及数据格式,包括URL、查询字符串、post数据、http header等,也就是为了保证webserver传递过来的数据是标准格式的 CGI可以用任何一种具有标准输入、输出和环境变量的语言编写,如php、perl、tcl等。不同类型语言写的程序只要符合cgi标准,就能作为一个cgi程序与web服务器交互,早期的cgi大多都是c或c++编写的 一般说的cgi指的是用各种语言编写的能实现该功能的程序 CGI程序的工作原理 每次webserver收到index.php这种类型的动态请求后,会启动对应的CGI程序(php的 解析器) php解析器会解析php.ini配置文件,初始化运行环境,然后处理请求,处理完成后将数据按照cgi规定的格式返回给webserver然后退出进行进程 最后webserver再把结果返回给浏览器 CGI程序的特点 高并发时性能较差 cgi程序的每一次web请求都会有启动和退出过程,也就是最为人诟病的fork-and-execute模式(每次HTTP服务器遇到动态请求时都需要重新启动脚本解析器来解析php.ini,重新载入全部dll扩展并初始化全部数据结构