前言 在公司网站开发中,我们往往借助于Flask、Django等网站开发框架去提高网站开发效率。那么在面试后端开发工程师的时候,面试官可能就会问到网站开发的底层原理是什么?...我们不止仅仅会使用框架开发,还需要知其所以然 今天领大家不借助任何框架的基础上手动搭建一个资料查找网站 主要内容 TCP网络模型 正则表达式匹配资源 如何编写一个tcp server服务端 开始我们的代码...可以使用Python自带的一个通讯模型:socket python中内置的网络模型库tcp / udp import socket 为浏览器发送数据的函数 1....向浏览器发送http数据 如果浏览器在接收完http协议数据之后遇到了换行,自动将下面的数据转成网站内容body中去 response = 'HTTP/1.1 200 OK \r\n' response...+= '\r\n' # 构建你想要显示的数据内容 response += 'hello world' 3.
找到浏览器设置,打开服务,地址栏与搜索 ? 2.设置如下 ? ? 3....然后发现使用Google搜索后默认是覆盖搜索结果而不是打开新的标签页 找了半天在浏览器没有找到设置,后来终于发现需要在谷歌搜索引擎处设置,而不是在浏览器本身设置。 ? ? 大功告成!
4.CGI应用程序执行所需要的操作,通常是基于浏览者输入的内容。 5.CGI应用程序把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页)。 6.网络服务器把结果返回到浏览器中。...4、网页浏览 为了更好的了解CGI是如何工作的,我们可以从在网页上点击一个链接或URL的流程: 1、使用你的浏览器访问URL并连接到HTTP web 服务器。...2、Web服务器接收到请求信息后会解析URL,并查找访问的文件在服务器上是否存在,如果存在返回文件的内容,否则返回错误信息。 3、浏览器从服务器上接收信息,并显示接收的文件或者错误信息。...这个cgi.py脚本是一个简单的Python脚本,脚本第一行的输出内容"Content-type:text/html"发送到浏览器并告知浏览器显示的内容类型为"text/html"。...前面2张图和GET是一样的,第3张图可以看到,POST方法不会在浏览器中显示参数。
支持CGI的服务器程序接收到客户的请求,根据请求中的URL,运行对应的脚本文件。服务器会将HTTP请求的信息通过环境变量的方式传递给脚本文 件,并等待脚本的输出。...CGI的实现方式有很多,比如说使用Apache 服务器与Perl 写的CGI脚本,或者Python 服务器与shell写的 CGI 脚本。...cgi包用于提取请求中包含的表格信息。脚本只负责将所有的结果输出到标准输出(使用print)。 CGIHTTPRequestHandler 会收集这些输出,封装成HTTP回复,传送给客户端。...比如一些python web 框架如 web.py 会自己实现一个 wsgi 服务器,并留出接口,让开发者更好地实现 web 应用的功能,将 url 映射 到各个不同的 python class,在 class...此外,在一个Web App 中,有多个用户会同时访问,假设以多线程模式来处理每个用户的请求,每个线程在访问数据库时都必须创建仅属于 自身的连接,对别的线程不可见,否则就会造成数据库操作混乱,此时可能需要用到
它允许Web服务器执行外部程序,并将这些程序的输出发送给Web浏览器,从而实现动态内容的生成和显示。...CGI程序通常被放置在Web服务器的特定目录(如cgi-bin)中,并通过特定的URL路径进行访问。...处理与响应:CGI程序执行相应的逻辑操作,如访问数据库、处理表单数据、执行计算等。然后,它将处理结果通过标准输出(stdout)发送给Web服务器。...结果返回:Web服务器将CGI程序的输出作为HTTP响应的一部分返回给客户端浏览器。浏览器解析并显示响应内容,从而呈现给用户动态生成的网页或处理结果。...三、CGI技术的特点 跨平台性:CGI技术可以在多种操作系统和Web服务器上运行,具有很好的跨平台性。 灵活性:CGI程序可以用多种编程语言编写,如Perl、Python、PHP、C等。
为了更好的了解CGI是如何工作的,我们可以从在网页上点击一个链接或URL的流程: 1、使用你的浏览器访问URL并连接到HTTP web 服务器。...2、Web服务器接收到请求信息后会解析URL,并查找访问的文件在服务器上是否存在,如果存在返回文件的内容,否则返回错误信息。 3、浏览器从服务器上接收信息,并显示接收的文件或者错误信息。...CGI程序可以是Python脚本,PERL脚本,SHELL脚本,C或者C++程序等。 二、环境搭建 Web服务器:可以使用Apache或Nginx等,确保已安装并配置好。...字段解析:使用 cgi.FieldStorage() 解析POST或GET参数。 错误处理:cgitb.enable() 可以使错误信息在浏览器中显示,便于调试。...七、总结 尽管CGI编程在现代Web开发中已被更高级的框架所取代,但它仍然是理解Web服务器与应用程序交互方式的重要途径。
虽然我们听说过Java的Servlet,Python的WSGI。但其实Java、Python都是支持CGI的,不仅如此,其他我们所熟知的语言大都也都支持。...Web服务器在接收到用户浏览器的HTTP请求,比如请求如下URL: http://guodongxiaren.me/cgi-bin/helloworld.cgi 此时在Web服务器调用helloworld.cgi...然后前端JS利用XML/JSON中的数据来进行填充。可以绘制出丰富的界面或用作他用。JS可以使用Ajax技术来向后台CGI发起数据请求。...Ajax完成的是不需要刷新整个页面就可以加载后端数据(比如从数据库中取出)。...当然实际工程应用中很少严格遵守Restful的学院派定义,比如URL资源使用名词,然后使用各个HTTP的方法(GET、POST、PUT、DELETE等)表示动词。
CGI脚本工作流程: 浏览器通过HTML表单或超链接请求指向一个CGI应用程序的URL。 服务器执行务器收发到请求。所指定的CGI应用程序。...CGI应用程序执行所需要的操作,通常是基于浏览者输入的内容。 CGI应用程序把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页)。 网络服务器把结果返回到浏览器中。...python有cgi模块可支持原生cgi程序 FastCGI: FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。...FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出。...目前,你可以使用C,C++和Objective-C来编写插件。项目名称中的“WSGI”是为了向同名的Python Web标准表示感谢,因为WSGI为该项目开发了第一个插件。
19.1 理解为什么须要mod_python 我们已经在第18章中讨论过,CGI脚本是最经常使用的一种产生动态网页的方法。每当有页面请求的时候,相应的CGI脚本就被调用。...对于连接数据库的CGI脚本来说,性能就更差了,由于每次显示一个页面的时候,它们都必须建立一个新的数据库session。正是由于这个原因。CGI脚本不适合那些流量大的网站。...方法的返回值在浏览器中显示出来。 尽管公布处理器极大的简化了mod_python编程。...性能就更差了,由于每次显示一个页面的时候,它们都必须建立一个新的数据库session。正是由于这个原因,CGI脚本不适合那些流量大的网站。 mod_python就是一个解决问题的方法。...方法的返回值在浏览器中显示出来。 尽管公布处理器极大的简化了mod_python编程。
它允许使用不同语言来编写适合的CGI程序,该程序被放在Web服务器上运行。...当客户端发出请求给服务器时,服务器根据用户请求建立一个新的进程来执行指定的CGI程序并将执行结果以网页形式返回给客户端的浏览器上显示出来。...它通过在页面代码中嵌入VBScript或JavaScript脚本语言来生成动态的内容。...但必须得在服务器端安装了适当的解释器后,才可以通过调用此解释器来执行脚本程序,然后将执行结果与静态内容部分结合并传送到客户端浏览器上。...对于一些复杂的操作可以封装到类或函数中。在PHP中提供了许多已经定义好的函数,例如提供的标准数据库接口,数的数据库连接方便,扩展性强。
15.2 使用CGI创建动态网页 CGI(通用网关接口)。CGI是网络服务器可以将查询传递到专门的程序中并且在网页上显示结果的标准机制。...'hello,world' 可以通过浏览器访问下 15.2.7 使用cgi模块 输入时通过HTML表单提供给CGI脚本的键-值对,或称字段。...% name CGI脚本的输入一般都是从已经提交的web表单中获得,但是也可以直接使用参数调用CGI程序。 15.2.8 简单的表单 从CGI脚本获取信息的方法有两种:GET方法和POST方法。...如果要使用CGI处理程序,要将下面的代码放在CGI脚本所在目录中的.htaccess文件内 SetHandler mod_python PythonHandler mod_python.cgihandler...以及python代码的混合,python代码会包括在具有特殊用途的标签中。
(6)浏览器接收到结果后关闭与服务器的TCP连接。 (7)浏览器将接收到的结果呈现在显示器上。...CGI:Common Gateway Interface,CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。...,然后将服务器端程序生成的返回封装成HTTP Response,并返回给浏览器。...本节演示在Linux Ubuntu下OpenSSL的使用方法,以及Nginx在Linux下的证书配置方式。 Windows中OpenSSL的使用方式与Linux中的完全一致,读者可以自行尝试。...基础,带领初学者实践Python开发环境,掌握基本语法,同时对网络协议、Web客户端技术、数据库建模等网络编程基础进行深入浅出的学习;中篇是Python框架,学习当前***的Python Web框架,即
支持CGI的服务器程序接收到客户的请求,根据请求中的URL,运行对应的脚本文件。服务器会将HTTP请求的信息和socket信息传递给脚本文件,并等 待脚本的输出。...CGI的实现方式有很多,比如说使用Apache服务器与Perl写的CGI脚本,或者Python服务器与shell写 的CGI脚本。...cgi包用于提取请求中包含的表格信息。脚本只负责将所有的结果输出到标准输出(使用print)。 CGIHTTPRequestHandler会收集这些输出,封装成HTTP回复,传送给客户端。...对于POST方法的请求,它的URL需要指向一个CGI脚本(也就是在cgi-bin或者ht-bin中的文件)。...更进一步,我可以让CGI脚本执行数据库操作,比如将接收到的数据放入到数据库中,以及更丰富的程序操作。相关内容从略。
通俗来说,规定一个程序该如何与web服务器程序之间通信,从而可以让这个程序跑在web服务器上 起源 最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态...REQUEST_METHOD 提供脚本被调用的方法。对于使用 HTTP/1.0 协议的脚本,仅 GET 和 POST 有意义。...SCRIPT_FILENAME CGI脚本的完整路径 SCRIPT_NAME CGI脚本的的名称 SERVER_NAME 这是你的 WEB 服务器的主机名、别名或IP地址。...这就是 PHP-FPM 的基本工作原理 WSGI / uwsgi / uWSGI 在python web开发中,我们经常使用uwsgi配合nginx部署一个web框架,如Django或flask。...Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。 uWSGI是使用C编写的,显示了自有的uwsgi协议的Web服务器。
Web服务器处理客户端数据 20.4.1 CGI介绍 CGI代表了在一个web服务器和能够处理用户表单,生成并返回动态HTML页的应用 程序间的交互 20.4.2 CGI应用程序 当一个CGI脚本开始执行时...--------- # mkdir web # cd web # python -m CGIHTTPServer 2.在启动这个服务器的目录下建立一个cgi-bin,并将Python CGI脚本放到该目录...站点 我们最后一个例子将会完成这个循环 用户在表单页中输入他/她的信息,然后我们处理这些数据,并输出一个结果页面 现在我们将会在结果页面上加个链接允许返回到表单页面,但是我们返回的是含 有用户输入信息的页面而不是一个空白页面...中使用Unide编码 例,简单Unicode CGI示例(uniCGI.py) 这个脚本输出到你web浏览器端的是Unicode字符串 # vi uniCGI.py ------------------...20.7.1 Mulitipart 表单提交和文件上传 20.7.2 多值字段 20.7.3 cookie 20.7.4 使用高级CGI 例,这个脚本有一个处理所有事情的主函数,AdvCGI,它有方法显示表单
您的浏览器联系上 HTTP Web 服务器,并请求 URL,即文件名。 Web 服务器将解析 URL,并查找文件名。...如果找到请求的文件,Web 服务器会把文件发送回浏览器,否则发送一条错误消息,表明您请求了一个错误的文件。 Web 浏览器从 Web 服务器获取响应,并根据接收到的响应来显示文件或错误消息。...这一行发送回浏览器,并指定要显示在浏览器窗口上的内容类型。您必须理解 CGI 的基本概念,这样才能进一步使用 Python 编写更多复杂的 CGI 程序。...脚本,用于处理 Web 浏览器通过复选框给出的输入。...,并尝试使用下面的链接获取您的计算机上所有可用的 cookies: /cgi-bin/getcookies.cgi 这会产生一个列表,显示了上一节中设置的四个 cookies 以及您的计算机上所有其他的
因此总合来说,其安全性还是相当高的。)。被广泛使用,是最流行的Web服务器软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。 软件图标 ?...~]# firewall-cmd --reload success [4] 创建一个HTML测试页,并使用Web浏览器从客户端PC访问它。...三、支持Perl 启用CGI执行并使用Perl脚本 [1] 安装Perl....六、支持Python 启用CGI执行并使用Python脚本 [1] 安装python....PC与Web浏览器和访问它,如果显示以下页面,就是正确的 [cent@linuxprobe ~]$ mkdir public_html [cent@linuxprobe ~]$ chmod 711 /
在服务器上,CGI程序对输入的数据进行格式化,并将这个信息发送给数据库或服务器上运行的其他程序,然后将结果返回给Web服务器。...最后,Web服务器将结果发送给Web浏览器,这些结果有时使用新的Web页面显示,有时在当前Web页面中显示。...编写自定义CGI脚本需要相当多的编程技巧,多数CGI脚本是由Perl,Java,C和C++等语言编写的,服务器上通常很少运行用JavaScript编写的服务器脚本,不管使用何种语言,Web页面设计者都需要控制服务器...当Web浏览器需要浏览使用客户端脚本语言编写的Web页面时,Web服务器将客户端脚本连同Web页面一起传送到Web浏览器,Web浏览器同时显示HTML的显示效果和客户端脚本的运行效果, 客户端脚本可减轻...当Web浏览器需要浏览使用服务器端脚本语言编写的Web页面时,Web服务器运行Web页面中的服务器端脚本,将由脚本语言的运行结果与Web页面的HTML部分生成的新的Web页面传送到Web浏览器,Web浏览器显示生成的新的
领取专属 10元无门槛券
手把手带您无忧上云