web服务器

Python之HTTP静态Web服务器开发

為{幸葍}努か 提交于 2019-12-08 22:29:47
1 # 1.导入模块 2 import socket 3 4 5 def main(): 6 # 2.创建socket对象 7 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 8 9 # 3.设置端口复用 10 server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True) 11 # 4.绑定端口 12 server_socket.bind(('', 8001)) 13 # 5.设置监听 14 server_socket.listen(128) 15 # 设置循环接收客户端连接,实现多客户端连接 16 while True: 17 # 6.接收客户端连接 18 client_socket, ip_port = server_socket.accept() 19 print("客户端:%s 上线了,使用端口为:%s" % ip_port) 20 # 7.接收数据 21 recv_data = client_socket.recv(1024).decode('utf-8') 22 if recv_data: 23 # print('接收的数据为:', recv_data) 24 # 获取http请求报文中的指定路径 25 #

Nginx面试题

感情迁移 提交于 2019-12-08 03:03:12
一、什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,及电子邮件代理服务器,同时也可以作为反向代理服务器来实现负载均衡。 二、为什么要使用Nginx? 因为Nginx具有跨平台、配置简单、非阻塞、高并发连接等特点! Nginx的优势: 内存消耗小:开启10个Nginx才占150M内存,Nginx处理静态文件好,耗费内存小; 内置的健康检查功能:如果有一个服务器宕机,Nginx会将这台宕机的服务器移出集群; 节省带宽:支持Gzip压缩,可以添加到浏览器本地进行缓存; 稳定性高:宕机的概率非常小; 接收用户请求是异步的(采用epoll模型):浏览器将请求发送到nginx服务器,它先将用户请求全部接收下来,再一次性发送给后端web服务器,极大减轻了web服务器的压力,一边接收web服务器的返回数据,一边发送给浏览器客户端, 网络依赖性比较低,只要ping通就可以负载均衡,可以有多台nginx服务器 使用dns做负载均衡,事件驱动; 三、Nginx的功能? 主要功能: 可以作为Web服务器(代替Apache,对PHP需要fastcgi处理器支持); 可以作为反向代理服务器; 可以实现负载均衡; 可以配置虚拟主机; fastcgi:Nginx本身不支持PHP等语言,但是它可以通过fastcgi来将请求转交到某些语言或框架处理; 四、Nginx是如何实现高并发的?

在web中实现邮件发送功能

限于喜欢 提交于 2019-12-08 00:53:54
在web站点中也可以集成邮件客户端软件的功能,以便web站点的注册用户可以通过web页面来收发电子邮件,例如,sina和sohu等大型门户网站都会为会员提供了通过web页面来收发电子邮件的功能。对于一些中小型的web站点来说,虽然不需要为其会员提供web页面的电子邮件收发功能,但是,这些站点确很可能需要为自己提供向注册用户发送邮件的功能,例如,web站点自动给新注册的用户发送一封包含其注册信息的欢迎Email,给过生日的注册会员自动发送一封表示祝贺的Email,将网站的最新活动信息通过Email发送给所有的注册会员等。本节主要讲解如何实现在中小型的WEB站点中实现邮件发送功能,要在web站点中实现邮件发送功能的工作其实也很简单,只要将普通的邮件发送程序改写成一个web应用程序就可以了,只是web站点中的邮件发送程序通常会使用自己站点的SMTP服务器来对外发送邮件,web站点发送邮件的过程如下图所示: 从上图可以看出,浏览器通过访问web站点中的邮件发送程序来提交邮件发送请求,邮件发送程序将把邮件发送给自己网站的SMTP服务器,该SMTP服务器收到邮件后,将根据收件人的地址在将邮件的目的地,要么是投递到本地域管理的收件人邮箱中,要么是转交给管理收件人地址域的其他SMTP服务器。 一些web服务器程序专门提供了对邮件发送功能的一些支持,例如

WSGI到底是什么?

落花浮王杯 提交于 2019-12-07 23:45:37
在用Python Web开发时经常会遇到WSGI,所以WSGI到底是什么呢?本文我们一起来揭开WSGI神秘的面纱! 先来看一下 WSGI的介绍 : 全称Python Web Server Gateway Interface,指定了web服务器和Python web应用或web框架之间的标准接口,以提高web应用在一系列web服务器间的移植性。 具体可查看 官方文档 从以上介绍我们可以看出: WSGI是一套接口标准协议/规范; 通信(作用)区间是Web服务器和Python Web应用程序之间; 目的是制定标准,以保证不同Web服务器可以和不同的Python程序之间相互通信 你可能会问, 为什么需要WSGI? 首先,我们明确一下web应用处理请求的具体流程: 用户操作操作浏览器发送请求; 请求转发至对应的web服务器 web服务器将请求转交给web应用程序,web应用程序处理请求 web应用将请求结果返回给web服务器,由web服务器返回用户响应结果 浏览器收到响应,向用户展示 可以看到,请求时Web服务器需要和web应用程序进行通信,但是web服务器有很多种啊,Python web应用开发框架也对应多种啊,所以WSGI应运而生,定义了一套通信标准。试想一下,如果不统一标准的话,就会存在Web框架和Web服务器数据无法匹配的情况,那么开发就会受到限制,这显然不合理的。 既然定义了标准

六、永无止境:网站的伸缩性架构

蹲街弑〆低调 提交于 2019-12-07 21:46:27
(1)网站架构的伸缩性设计 1.不同功能进行物理分离实现伸缩。纵向分离和横向分离,不同的服务器部署不同的业务。 2.单一功能通过集群规模实现伸缩。集群内的多台服务器部署相同的服务,提供相同的功能。 (2)应用服务器集群的伸缩性设计 如果HTTP请求分发装置可以感知或者可以配置集群的服务器数量,可以及时发现集群中新上线或下线的服务器,并能向新上线的服务器分发请求,停止向已下线的服务器分发请求,那么就实现了应用服务器集群的伸缩性。 这里,这个HTTP请求分发装置被称作均衡负载服务器。 实现负载均衡的技术,以下几种: 1.HTTP重定向负载均衡。 HTTP重定向服务器是一台普通的应用服务器,其唯一的功能就是根据用户的HTTP请求一台真实的Web服务器地址,并将该Web服务器地址写入HTTP重定向响应中(响应状态码为302)返回给用户浏览器。在图6.5中,浏览器请求访问域名 www.mysite.com 。DNS服务器解析得到IP地址是114.100.80.10,即HTTP重定向服务器的IP地址。然后浏览器通过IP地址 114.100.80.10访问HTTP重定向负载均衡服务器后,服务器根据某种负载均衡算法计算获得一台实际物理服务器的地址(114.100.80.3),构造一个包含该实际物理服务器地址的重定向响应返回给浏览器,浏览器自动重新请求实际物理服务器的IP地址(114.100.80

java实现简单的单点登录

ε祈祈猫儿з 提交于 2019-12-07 18:51:37
java实现简单的单点登录 发表于2年前(2014-05-20 09:11) 阅读( 6399 ) | 评论( 0 ) 9 人收藏此文章, 我要收藏 赞 1 摘要 单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现技术进行进一步分析,指出相应的风险和需要改进的方面。本文除了从多个方面和角度给出了对单点登录(SSO)的全面分析,还并且讨论了如何将现有的应用和SSO服务结合起来,能够帮助应用架构师和系统分析人员从本质上认识单点登录,从而更好地设计出符合需要的安全架构。 SSO Java J2EE JAAS 1 什么是单点登陆 单点登录( Single Sign On ),简称为 SSO ,是目前比较流行的企业业务整合的解决方案之一。 SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 较大的企业内部,一般都有很多的业务支持系统为其提供相应的管理和 IT 服 务。例如财务系统为财务人员提供财务的管理、计算和报表服务;人事系统为人事部门提供全公司人员的维护服务;各种业务系统为公司内部不同的业务提供不同的 服务等等

JAVA实现简单的单点登录

烂漫一生 提交于 2019-12-07 18:48:00
摘要 :单点登录( SSO )的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出 Web-SSO 和桌面 SSO 的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现技术进行进一步分析,指出相应的风险和需要改进的方面。本文除了从多个方面和角度给出了对单点登录( SSO )的全面分析,还并且讨论了如何将现有的应用和 SSO 服务结合起来,能够帮助应用架构师和系统分析人员从本质上认识单点登录,从而更好地设计出符合需要的安全架构。 关键字 : SSO, Java, J2EE, JAAS 1 什么是单点登陆 单点登录( Single Sign On ),简称为 SSO ,是目前比较流行的企业业务整合的解决方案之一。 SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 较大的企业内部,一般都有很多的业务支持系统为其提供相应的管理和 IT 服 务。例如财务系统为财务人员提供财务的管理、计算和报表服务;人事系统为人事部门提供全公司人员的维护服务;各种业务系统为公司内部不同的业务提供不同的 服务等等。这些系统的目的都是让计算机来进行复杂繁琐的计算工作,来替代人力的手工劳动,提高工作效率和质量。这些不同的系统往往是在不同的时期建设起来 的

Web服务器及性能优化

半腔热情 提交于 2019-12-07 12:55:28
一、WEB服务器 1.1 概述: 1.2 区别: 1.2.1 Apache 1.2.2 Tomcat 1.2.3 Jboss 二、浏览器端,关于浏览器端优化 2.1 压缩源码和图片 2.2 选择合适的图片格式 2.3 合并静态资源 2.4 开启服务器端的Gzip压缩 2.5 使用CDN 2.6 延长静态资源缓存时间 2.7 把CSS放在页面头部,把JavaScript放在页面底部 三、服务端优化 3.1 HTML静态化 3.2 图片服务器分离 3.3 数据库集群、库表散列 3.4 缓存 3.5 镜像 3.6 负载均衡 3.6.1 硬件四层交换 3.6.2 软件四层交换 一、WEB服务器 1.1 概述: Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。 Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。 Apache是Web服务器而Tomcat是Java应用服务器。 1.2 区别: 1.2.1 Apache 是C语言实现的,专门用来提供HTTP服务。 特性:简单、速度快、性能稳定、可配置(代理) 1、主要用于解析静态文本,并发性能高,侧重于HTTP服务; 2、支持静态页(HTML)

Eclipse中的Web项目自动部署到Tomcat

守給你的承諾、 提交于 2019-12-07 12:15:23
很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写 博客,现在感觉还是很有必要的,编程中每个人对于犯过的错误,解决后不再使用的话,很长时间重新使用,还是会犯同样的错误。(这是人,编程环境,思维方式 共同决定给的) 问题 这里就有个问题,是怎么把Eclipse中的网站项目自动部署到tomcat中。在Eclipse中做的Web项目默认是不支持将项目发布到Web 服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse中的服务器,才能运行Web项目。所 以要对Eclipse进行修改,才能将做好的项目,发布到Tomcat服务器上,发布到服务器上的Webapps文件夹下。 在Eclipse中,默认会把Web项目放到Eclipse的工作空间下的.metadata\.plugins \org.eclipse.wst.server.core\tmp0(或者是tmp1)\wtpwebapps\下,如果现在Eclipse中有名为 access的项目,将它按以前的方式部署到服务器上,则会在上边的目录下,看到自己的项目了,如图所示: 解决方法 1. 在Eclipse中的最底下的Servers视图,将所有部署的项目移除,如图所示: 2. 在该服务器上,单击鼠标右键选择

JavaWeb(六):会话与状态管理

爱⌒轻易说出口 提交于 2019-12-06 22:51:31
HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的 ,浏览器的每一次请求都是完全孤立的。即使 HTTP1.1 支持持续连接,但当用户有一段时间没有提交请求,连接也会关闭。怎么才能实现网上商店中的购物车呢:某个用户从网站的登录页面登入后,再进入购物页面购物时,负责处理购物请求的服务器程序必须知道处理上一次请求的程序所得到的用户信息。 作为 web 服务器,必须能够采用一种机制来唯一地标识一个用户,同时记录该用户的状态。 WEB应用中的 会话 是指一个客户端浏览器与WEB服务器之间连续发生的一系列请求和响应过程。WEB应用的 会话状态 是指WEB服务器与浏览器在会话过程中产生的状态信息,借助会话状态,WEB服务器能够把属于同一会话中的一系列的请求和响应过程关联起来。 WEB服务器端程序要能从大量的请求消息中区分出哪些请求消息属于同一个会话,即能识别出来自同一个浏览器的访问请求,这需要浏览器对其发出的每个请求消息都进行标识:属于同一个会话中的请求消息都附带同样的标识号,而属于不同会话的请求消息总是附带不同的标识号,这个标识号就称之为会话ID(SessionID)。 在 Servlet 规范中,常用以下两种机制完成会话跟踪 Cookie Session 一、Cookie cookie机制采用的是在客户端保持 HTTP 状态信息的方案