web服务器

如何开发一个仿微信的 Web IM?

非 Y 不嫁゛ 提交于 2019-11-30 09:44:33
Company: Yappam Date: 20150325 Author: Yuewen Hao 序 在这个开源盛行的年代, 想要做出一些功能性开发, 一般来说只要找对了方向, 用对了工具, 都会简单的让你自己都觉得不可思议. 当然, 更重要的是, 我们可以有更多的精力去陪身边的人, 做自己喜欢的事情. 想想就觉得很高兴. 回到主题. 今天, 我们就来看看怎么可以做出一款仿微信客户端聊天的Web IM. 注: IM (Instant Message) 即时性消息, 就比如 QQ, 它就属于客户端的即时性聊天软件. 效果如图: 基础概念 为了实现这个效果, 我们首先需要知道几个简单的概念. XMPP 协议 简单来说, 就是我们需要通过一种规则来聊天. 就像摩斯密码那样. 通过不同长短和个数的 “滴(Di)” “嗒(Da-)”, 对应着协议规则翻译成不同的字母. 就比如, “Di” “Da-” 就是”A”, 而 “Di” “Di” “Di” “Di” 就代表着 “H”. 如图: 而在XMPP 协议中, 它的规则是 XML 文件来定义的. 它通过三种基本的XML 节:IQ Stanza(IQ 节), Presence Stanza(Presence 节), Message Stanza(Message 节), 从而形成了一个基本的即时通信协议平台. 注: Stanza 代表XML消息节

Django01 / http协议、web框架本质

≡放荡痞女 提交于 2019-11-30 09:16:08
Django01 / http协议、web框架本质 1.http协议 1.1 http协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。 2014年12月,互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组将HTTP/2标准提议递交至IESG进行讨论,于2015年2月17日被批准。 HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。 1.2 HTTP协议概述 HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具

python web 部署:nginx + gunicorn + supervisor + flask

一世执手 提交于 2019-11-30 08:04:46
python web 部署 web开发中,各种语言争奇斗艳,web的部署方面,却没有太多的方式。简单而已,大概都是 nginx 做前端代理,中间 webservice 调用程序脚本。大概方式: nginx + webservice + script nginx 不用多说,一个高性能的web服务器。通常用来在前端做反向代理服务器。所谓正向与反向(reverse),只是英文说法翻译。代理服务,简而言之,一个请求经过代理服务器从局域网发出,然后到达互联网上服务器,这个过程的代理为正向代理。如果一个请求,从互联网过来,先进入代理服务器,再由代理服务器转发给局域网的目标服务器,这个时候,代理服务器为反向代理(相对正向而言)。 正向代理:{ 客户端 ---》 代理服务器 } ---》 服务器 反向代理:客户端 ---》 { 代理服务器 ---》 服务器 } {} 表示局域网 nginx既可以做正向,也可以做反向。 webservice 的方式同样也有很多方式。常见的有 FastCGI , WSGI 等。我们采用 gunicorn 为 wsgi容器。python为服务器script,采用 flask 框架。同时采用supervisor管理服务器进程。也就是最终的部署方式为: nginx + gunicorn + flask ++ supervisor 创建一个项目 mkdir myproject

Django基础之web框架的本质

旧时模样 提交于 2019-11-30 07:47:35
一 web框架的本质及自定义web框架    可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求,服务端按照http协议的响应协议来响应请求,这样的网络通信,就可以自己实现Web框架了。 通过socket,知道网络通信,socket就是做网络通信用的,下面就基于socket来实现一个web框架,写一个web服务端,让浏览器来请求,并通过服务端把页面返回给浏览器,浏览器渲染出想要的效果。 html文件内容如下,名称为test.html:   <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="test.css"> <link rel="icon" href="wechat.ico"> <!--直接写在html页面里面的css样式是直接可以在浏览器上显示的--> <!--<style>--> <!--h1{--> <!--background-color: green;--> <!--color: white;--> <!--}--> <!--</style>--> <

HTTP协议web开发知识点

纵饮孤独 提交于 2019-11-30 06:55:26
HTTP协议那些事儿(Web开发补充知识点) HTTP协议 HTTP协议简介 超文本传输协议(英文: H yper T ext T ransfer P rotocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。 2014年12月,互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组将HTTP/2标准提议递交至IESG进行讨论,于2015年2月17日被批准。 HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。 HTTP协议概述 HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具

二、http通信 http与tcp关系

不想你离开。 提交于 2019-11-30 05:47:45
(TCP/IP通信数据流) 涉及到数据的封装: 用户端发送一个请求,从应用层开始,一直到链路层,每一层都会被打上该层所属的首部信息;反之,接收端在层与层之间传输时,每经过一层会去掉该层的首部信息 HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1. 建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,一般TCP连接的端口号是80。 2. Web 浏览器向Web服务器发送请求命令 一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET/sample/hello.jsp HTTP/1.1。 3. Web 浏览器发送请求头信息 浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。 4. Web 服务器应答 客户机向服务器发出请求后,服务器会客户机回送应答, HTTP/1.1 200 OK ,应答的第一部分是协议的版本号和应答状态码。 5. Web 服务器发送应答头信息 正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。 6. Web 服务器向浏览器发送数据 Web服务器向浏览器发送头信息后

《大型网站技术实践》借助LVS+Keepalived实现负载均衡

坚强是说给别人听的谎言 提交于 2019-11-30 04:59:20
一、负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧   当前大多数的互联网系统都使用了服务器集群技术,集群即 将相同服务部署在多台服务器上构成一个集群整体对外提供服务 ,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等。 古人有云: 当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车 。   在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转发。最近几年很火的「云计算」以及分布式架构,本质上也是将后端服务器作为计算资源、存储资源,由某台管理服务器封装成一个服务对外提供,客户端不需要关心真正提供服务的是哪台机器,在它看来,就好像它面对的是一台拥有近乎无限能力的服务器,而本质上,真正提供服务的,是后端的集群。 1.2 负载均衡的类型   负载均衡可以采用硬件设备(例如常常听见的F5),也可以采用软件负载。   商用硬件负载设备成本通常较高(一台几十万上百万很正常),所以在条件允许的情况下我们会采用软件负载;   软件负载解决的两个核心问题是:选谁、转发,其中最著名的是 LVS (Linux Virtual Server)。 传送门->

servlet filter listener interceptor 知识点

北城余情 提交于 2019-11-30 02:58:11
这篇文章主要介绍 servlet filter listener interceptor 之 知识点。博文主要从 概念,生命周期,使命介绍其区别。详情如下: 概念 生命周期 使命 servlet servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。 servlet的生命周期始于它被装入web服务器的内存时,并在web服务器终止或重新装入servlet时结束。servlet一旦被装入web服务器,一般不会从web服务器内存中删除,直至web服务器关闭或重新装入。(1). 装入:启动服务器时加载Servlet的实例(如果你设置<load-on-startup>的值是一个大于0的数,则tomcat在启动时就会创建servlet,如果没有设置这个属性,则是第一次访问时创建); (2). 初始化:web服务器启动时或web服务器接收到请求时,或者两者之间的某个时刻启动。初始化工作有init方法负责执行完成;(init方法只执行一次) (3). 调用:从第一次到以后的多次访问,都是只调用doGet()或doPost()方法; (4). 销毁:停止服务器时调用destroy()方法,销毁实例。 接受请求,相应请求 filter filter是一个可以复用的代码片段。它不能产生一个请求或者响应

web服务器url重写

柔情痞子 提交于 2019-11-29 23:43:15
nginx 判断是否能找到该文件,如果找不到,则进行url重写 if (!-f $request_filename){ rewrite (.*) /index.php; } nginx作用 前端服务器:负责http请求解析转发,或者处理静态请求。轻量级,并发量高,可以作为反向代理,负载均衡。 应用服务器:负责调用某种语言的解释器,或则某某种语言写的程序,接受http请求,按照开发者意图做出动作,把结果返回给请求。 Nginx不只有处理http请求的功能,还能做反向代理。Nginx通过反向代理功能将动态请求转向后端Php-fpm。 location ~ .php${ include ...../nginx/fastcgi.conf; #加载nginx的fastcgi模块 fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9000; #nginx fastcgi进程监听的IP地址和端口 } php-fpm是fastcgi的实现,并提供了进程管理功能。进程包含了master和worker两种进程。 master进程只有一个,负责监听端口,接收webserver请求;然而worker进程有多个, 每个进程都嵌入了php解释器 ,是php代码真正执行的地方。 apache httpd.conf配置文件中加载了mod_rewrite

AJAX基础笔记及面试题

时光总嘲笑我的痴心妄想 提交于 2019-11-29 22:10:08
AJAX基础笔记及面试题 1. 服务器软件安装 1. 基本概念 1. 什么是服务器? 2. 如何让电脑能够提供某种服务? 3. 如何让电脑提供管理网站的服务? 2. Web 服务器搭建 1. 什么是 WAMPServer 软件? 2. 如何搭建Apache服务器? 3. 测试访问 4. 如何修改默认端口号? 3. 服务器原理 1. 什么是C/S架构(Client/Server) 2. 什么是B/S架构(Browser/Server) 3. HTTP请求头 4. HTTP响应头 5. 状态码相关解释 2. PHP 基础语法 1. PHP基础 3. GET 请求 1. GET 请求处理 2. Ajax-GET 基本使用 1. 什么是Ajax 2. 使用步骤 3. Ajax-GET-IE兼容问题 1. IE5 和 IE6 使用 ActiveXObject 2. Ajax 在IE中的缓存问题 4. Ajax-GET 封装 1. 简单封装(IE兼容) 2. 完善封装(传递参数) 3. 完成封装(超时功能,中文转码) 4. POST 请求 1. POST 请求处理 2. POST 上传文件 3. Ajax-POST 基本使用 1. 基本结构 2. 完全封装 5. jQuery 中的 Ajax 1. 基本使用 2. jQuery 中的 Ajax 优点 1. 不区分 GET 和 POST 大小写