web服务器

b/s架构与c/s架构

别等时光非礼了梦想. 提交于 2020-01-26 00:59:28
1.什么是b/s架构?什么是c/s架构? B/S(Browser/Server),浏览器/服务器程序 应用系统完全放在应用服务器上, 并通过应用服务器同数据库服务器进行通信,系统界面 是通过浏览器来展现的. C/S(Client/Server),客户端/服务端,桌面应用程序! c/s架构分为客户端和服务器两层,用户在本地安装客户端软件,通过网络与服务器相互通信,最典型的应用有QQ聊天,微信,用户只需在客户端安装应用软件, 实现与服务器之间的通信. b/s原理: b/s采取浏览器请求,服务器响应的工作模式。 用户可以通过浏览器去访问 internet 上由web服务器产生的文本,数据等信息; 而每一个web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中; 从web服务器上下载程序到本地来执行,在下载的过程中若遇到与数据库有关的指令,由web服务器交给数据库来解释执行,并返回给web服务器,web服务器又返回给用户,在这种结构中,将许许多多的网络连接在一起,形成全球网 c/s原理: c/s结构通常采取俩层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。 客户机通过局域网与服务器相连,接受用户的请求,并通过网络向服务器提出请求,对数据库进行操作。服务器接受客户机的请求,将数据提交给客户机,客户机将数据进行计算并将结果呈现给用户

网络知识入门,探讨DNS服务器在网页请求中的作用(二)

北城以北 提交于 2020-01-25 19:56:45
上一篇文章讲到网络请求是基于http协议传输的,消息请求包含了“对什么”和“做什么操作”,于是一个网页请求就这么发送出去了。但是在发送消息之前,我们还需要对域名进行解析,得到ip地址之后才可以发送请求,本文就来探讨一下网页请求中如何将域解析为ip地址。 [网络知识入门,探索一次网页请求的旅程(一)] https://blog.csdn.net/ck784101777/article/details/103729743 一、向DNS服务器查询Web服务器的IP地址 生成HTTP消息之后,接下来我们需要委托操作系统将消息发送给Web服务器。尽管浏览器能够解析网址并生成HTTP消息,但它本身并不具备将消息发送到网络中的功能(浏览器本身也是借用本地操作系统来发送请求),因此这一功能需要委托操作系统来实现。在进行这一操作时,我们还有一个工作需要完成,那就是查询网址中服务器域名对应的IP地址。 在委托操作系统发送消息时,必须要提供的不是通信对象的域名,而是它的IP地址 。因此,在生成HTTP消息之后,下一个步骤就是根据域名查询IP地址。在讲解这一操作之前,让我们先来简单了解一下IP地址。 1.TCP/IP网络 互联网和公司内部的局域网都是基于TCP/IP的思路来设计的,所以我们先来了解TCP/IP的基本思路。TCP/IP的结构如图所示,就是由一些小的子网,通过路由器连接起来组成一个大的网络

BS架构

爱⌒轻易说出口 提交于 2020-01-25 17:46:40
  客户端浏览器——web服务器——数据库 网页游戏 网页游戏又称Web游戏,无端网游,简称页游。是基于Web浏览器的网络在线多人互动游戏,无需下载客户端,不存在机器配置不够的问题,最重要的是关闭或者切换极其方便,尤其适合上班族。 客户端浏览器 WEB简介 Web服务器是可以向发出请求的浏览器提供文档的 程序 。 1、服务器是一种被动程序:只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应 。 2 、最常用的Web服务器是 Apache 和 Microsoft 的 Internet 信息服务器(Internet Information Services,IIS)。 3、Internet上的服务器也称为Web服务器,是一台在Internet上具有独立IP地址的计算机,可以向Internet上的客户机提供WWW、 Email 和 FTP 等各种Internet服务。 4 、 Web服务器是指驻留于 因特网 上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用 HTTP ( 超文本 传输协议 )与客户机浏览器进行信息交流,这就是人们常把它们称为HTTP服务器的原因。 Web服务器不仅能够存储信息

web service基础知识

吃可爱长大的小学妹 提交于 2020-01-25 17:35:38
Web服务基础 用户访问网站的基本流程 我们每天都会用web客户端上网,浏览器就是一个web客户端,例如谷歌浏览器,以及火狐浏览器等。 当我们输入www.oldboyedu.com/时候,很快就能看到老男孩教育的官网了,这一切看起来很平淡无奇,背后又是什么道理呢?普通人可以不知道,但是咱们作为it开发人员,必须得掌握清楚背后的技术。 下面超哥为你揭晓用户访问网站的基本流程 老男孩教育某python总监,讲了一天课感觉很累,下了班躺床上打开他的macbook pro,双击浏览器,输入www.pornhub.com网址后,系统首先会查找本地的DNS缓存以及hosts文件信息,确定是否存在www.pornhub.com域名对应的ip解析记录,如果有就直接获取ip进行访问服务器,第一次请求时,dns缓存是没有解析记录的,hosts文件多数是开发临时测试用 如果本地dns缓存和hosts文件都没有域名解析记录,系统就会把某python总监访问的网址解析请求发送给 客户端设置的DNS服务器 去解析,也叫做Local DNS,如果LDNS服务器的本地缓存有对应的解析记录就会直接返回给客户端IP地址,如果没有LDNS就会继续请求其他的DNS服务器 LDNS继续从DNS系统的"."(根)开始请求www.pornhub.com域名的解析,并且根据每个层级的DNS服务器系统进行系列的查找

web service 基础知识

徘徊边缘 提交于 2020-01-25 17:35:13
Web服务基础 用户访问网站的基本流程 我们每天都会用web客户端上网,浏览器就是一个web客户端,例如谷歌浏览器,以及火狐浏览器等。 当我们输入www.oldboyedu.com/时候,很快就能看到老男孩教育的官网了,这一切看起来很平淡无奇,背后又是什么道理呢?普通人可以不知道,但是咱们作为it开发人员,必须得掌握清楚背后的技术。 下面超哥为你揭晓用户访问网站的基本流程 老男孩教育某python总监,讲了一天课感觉很累,下了班躺床上打开他的macbook pro,双击浏览器,输入www.pornhub.com网址后,系统首先会查找本地的DNS缓存以及hosts文件信息,确定是否存在www.pornhub.com域名对应的ip解析记录,如果有就直接获取ip进行访问服务器,第一次请求时,dns缓存是没有解析记录的,hosts文件多数是开发临时测试用 如果本地dns缓存和hosts文件都没有域名解析记录,系统就会把某python总监访问的网址解析请求发送给客户端设置的DNS服务器去解析,也叫做Local DNS,如果LDNS服务器的本地缓存有对应的解析记录就会直接返回给客户端IP地址,如果没有LDNS就会继续请求其他的DNS服务器 LDNS继续从DNS系统的"."(根)开始请求www.pornhub.com域名的解析,并且根据每个层级的DNS服务器系统进行系列的查找

Web框架本质

被刻印的时光 ゝ 提交于 2020-01-25 17:34:50
Web框架本质 1.本质   对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 2.原始版Web import socket sk = socket.socket() sk.bind(("127.0.0.1", 80)) sk.listen() while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"OK") conn.close()   我们在浏览器上输入:http://127.0.0.1/ 就可以看到服务端发来的"ok"了。可以说Web服务本质上都是在这十几行代码基础上扩展出来的。用户的浏览器一输入网址,会给服务端发送数据,那浏览器会发送什么数据?怎么发?这个谁来定? 这个规则就是HTTP协议,以后浏览器发送请求信息也好,服务器回复响应信息也罢,都要按照这个规则来。HTTP协议主要规定了客户端和服务器之间的通信格式,那HTTP协议是怎么规定消息格式的呢?让我们首先打印下我们在服务端接收到的消息是什么。    import socket sk = socket.socket() sk.bind(("127.0.0.1", 80)) sk.listen(5) while True: conn, addr = sk.accept() data

自己实现一个简易web服务器

若如初见. 提交于 2020-01-25 17:30:05
一个web服务器是网络应用中最基础的环节。 构建需要理解三个内容: 1.http协议 2.socket类 3.服务端实现原理 1.1 HTTP http请求 一般一个http请求包括以下三个部分: 1 请求方法,如get,post 2 请求头 3 实体 1.2http响应 与http请求类似,http响应也包括三个部分 1 协议-状态码-描述 2 响应头 3 响应实体段 2.Socket 2.1 不同的应用程序可以通过套接字发送或接受字节流。java中提供了Socket类来实现这个功能。 2.2 光靠Socket类还是不能够实现我们构建一个服务器应用程序的功能的,因为服务器必须时刻待命,因此java里面提供了ServerSocket类来处理等待来自客户端的请求,当ServerSocket接受到了来自客户端的请求之后,它就会创建一个实例来处理与客户端的通信。 3.实现原理 3.1 构建一个封装请求信息的类requst,一个响应请求的类response,还要有一个主程序httpServer来处理客户端来的请求 下面是一个requst类,主要处理uri 1 package com.lwq; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 6 /**10 * 将浏览器发来的请求信息转化成字符和截取url 11

实现简单的Web服务器

不羁的心 提交于 2020-01-25 17:29:51
实现简单的Web服务器 转自: http://learn.akae.cn/media/ch37s05.html 实现一个简单的Web服务器myhttpd。服务器程序启动时要读取配置文件/etc/myhttpd.conf,其中需要指定服务器监听的端口号和服务目录,例如: Port=80Directory=/var/www 注意,1024以下的端口号需要超级用户才能开启服务。如果你的系统中已经安装了某种Web服务器(例如Apache),应该为myhttpd选择一个不同的端口号。当浏览器向服务器请求文件时,服务器就从服务目录(例如/var/www)中找出这个文件,加上HTTP协议头一起发给浏览器。但是,如果浏览器请求的文件是可执行的则称为CGI程序,服务器并不是将这个文件发给浏览器,而是在服务器端执行这个程序,将它的标准输出发给浏览器,服务器不发送完整的HTTP协议头,CGI程序自己负责输出一部分HTTP协议头。 5.1. 基本HTTP协议 打开浏览器,输入服务器IP,例如 http://192.168.0.3 ,如果端口号不是80,例如是8000,则输入 http://192.168.0.3:8000 。这时浏览器向服务器发送的HTTP协议头如下: GET / HTTP/1.1Host: 192.168.0.3:8000User-Agent: Mozilla/5.0 (X11; U;

nginx+uWSGI+django+virtualenv+supervisor发布web服务器

做~自己de王妃 提交于 2020-01-25 16:04:20
wsgi 全称web server gateway interface,wsgi不是服务器,也不是python模块,只是一种协议,描述web server如何和web application通信的规则。运行在wsgi上的web框架有bottle,flask,django uwsgi 和wsgi一样是通信协议,是uWSGI服务器的单独协议,用于定义传输信息的类型 uWSGI 是一个web服务器,实现了WSGI协议,uwsgi协议。a nginx web服务器,更加安全,更好的处理处理静态资源,缓存功能,负载均衡,因此nginx的强劲性能,配合uWSGI服务器会更加安全,性能有保障。 django 高级的python web框架,用于快速开发,解决web开发的大部分麻烦,程序员可以更专注业务逻辑,无须重新造轮子 逻辑图 web服务器 传统的c/s架构,请求的过程是 客户端 > 服务器 服务器 > 客户端 服务器就是:1.接收请求 2.处理请求 3.返回响应 web框架层 HTTP的动态数据交给web框架,例如django遵循MTV模式处理请求。 HTTp协议使用url定位资源,urls.py将路由请求交给views视图处理,然后返回一个结果,完成一次请求。 web框架使用者只需要处理业务的逻辑即可。 如果将一次通信转化为“对话”的过程 Nginx:hello wsgi,我刚收到一个请求

nginx+uWSGI+django+virtualenv+supervisor发布web服务器

你离开我真会死。 提交于 2020-01-25 16:02:14
导论 WSGI是Web服务器网关接口。它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求) 基于wsgi运行的框架有bottle,DJango,Flask,用于解析动态HTTP请求 支持WSGI的服务器 wsgiref python自带的web服务器 Gunicorn 用于linux的 python wsgi Http服务器,常用于各种django,flask结合部署服务器。 mode_wsgi 实现了Apache与wsgi应用程序的结合 uWSGI C语言开发,快速,自我修复,开发人员友好的WSGI服务器,用于Python Web应用程序的专业部署和开发。 在部署python程序web应用程序时,可以根据性能的需求,选择合适的wsgi server,不同的wsgi server区别在于并发支持上,有单线程,多进程,多线程,协程的区别,其功能还是近似,无非是请求路由,执行对应的函数,返回处理结果。 Django部署 Django的主要部署平台是 WSGI,这是用于Web服务器和应用程序的Python标准。 Django的 startproject管理命令设置一个简单的默认WSGI配置,可以根据需要为您的项目进行调整,并指示任何符合WSGI的应用程序服务器使用。 application