前端知识,前端开发知识,前端开发相关知识
一.导言
对于后端开发,本文介绍了后端开发中使用的WEB服务器的工作流程。这意味着WEB服务器是后端开发人员调试WEB程序和与前端通信的日常方法。
WEB服务器最厉害的地方就是可以运行WEB程序,WEB程序的编程语言没有明确定义。只要所使用的服务器支持这样的程序。
WEB服务器就像一个创建软件的平台。这就是所谓的网络编程。注意:WEB编程下有CGI、FastCGI等多种规范。请查看此服务器的支持范围。
不同的服务器使用不同的规格。例如,JSP服务器只能运行用JAVA EE编写的WEB程序。它不能用于运行用C/C或Python等编程语言编写的WEB程序。
普通WEB服务器使用的所有编程规范都是CGI编程,是只能执行CGI规范的程序。除了一些例外的WEB服务器(比如JSP服务器)。
2.CGI规范,网络服务器执行过程
什么是CGI规范?
CGI是Common Gateway Interface的缩写,意思是公共网关接口。是指程序和脚本运行在WEB服务器上,WEB服务器将脚本的执行结果返回给浏览器(客户端)。
规范从哪里开始?
意味着无论规范是用哪种语言编写的,都必须使用output函数(cout,printf,print)将数据信息以HTML的形式输出。基于这些信息,WEB服务器将其传输到浏览器,浏览器的HTML树就是网页。
更重要的是,无论用什么语言编写,WEB服务器中的配置文件都支持CGI编程。将编译后的二进制可执行文件的扩展名更改为。然后在此网站的最后一页上使用get或post方法。
实际的执行是由操作系统完成的,但是WEB服务器会将程序打印的字符信息重定向到WEB服务器。这意味着当WEB服务器调用你的CGI程序时,它将使用操作系统上的命令进行重定向。
打印功能(如printf、cout)的基本实现过程是将数据写入显存,然后根据要打印文本的位置和位置写入显存。根据图形数据,GPU打开与屏幕上点亮的像素对应的二极管(RGB)。通用文本字体由操作系统完成。因为笔画因字体而异。Printf将打印的字符数据传输到操作系统。我们还必须考虑从用户状态到内核状态,到视频存储和编码的转换。因为每个代码支持的数据不一样,printf可以是ASCII(底层只是一个没有字符概念的二进制代码,二进制代码可以转换成ASCII代码。操作系统必须基于当前程序使用的代码。
当服务器运行CGI程序时,没有必要将程序的后缀改为。CGI。Exe,py,c,elff(arm可执行/Linux可执行,Linux是为arm设计的。) ) ) ) ) ) ) )。
注意,要格式化源文件,您需要WEB服务器的支持(比如apache服务器)。如果只支持py文件,apache服务器将自动编译并运行。py文件。
如果您需要在Linux或MAC系统上设置目录权限:
Chown -R 555 //所有权如何接受服务器传输的信息?
当当前页面向WEB服务器发送请求时,get/post让参与者具有以下请求数据:
https://www.zzhblog.cn/c.cgi/?utm_source=csdnbar
这意味着请求www.zzhblog.cn服务器下的c.cgi程序并将参数传递给它。参数名为utm_source,参数数据为csdnbar。
有这样一件事:
https://www.zzhblog.cn/?utm_source=csdnbar
未请求的程序名实际上隐藏在WEB服务器的后台。您可以在自己的WEB背景中设置默认文件。这意味着,如果您输入站点地址而不指定文件名,访问将恢复到默认文件。
或者,如果您隐藏了请求的文件名,WEB服务器会将此信息放在邮件头中,并在浏览器接收到它时自动隐藏它。
那么,你如何获得传达的信息呢?这里需要使用CGI提供的模块。CGI提供了C/C版本的模块和Python等模块。通过使用这些模块中的Get方法,您可以轻松地从后台服务器获取信息,处理数据,并将处理结果重定向到WEB服务器。最后,WEB服务器将该结构返回给浏览器。请注意,结果必须以HTML格式返回。
整个执行过程以HTTP协议格式标准化!
然而,一些WEB服务器已经开发了自己的WEB服务器编程语言。这意味着该WEB服务器只能运行指定的编译器。此外,该语言还提供了许多有用的模块,可以用来直接读取相关数据或处理数据。
C/C中的WEB程序开发
基于C/C的WEB程序开发效果
速率真的很低,因为一般情况下,我们做WEB服务器处理的时候,一般都是分析字符,而C/C传输的GET或POST数据是一个完整的URL和消息,需要C/C自己去分析这些数据。不像其他编程语言已经分析过了,我们可以直接拿来处理,C/C本身对字符处理的库支持就很差。开发人员需要手动编写字符处理库,所以这也是为什么人们不愿意用C/C进行WEB服务器开发的原因,因为要写很多代码。即使是CGI模块支持的,CGI模块也只能用来获取WEB服务器传输的数据!
再者,C/C本身就是一门不好学的编程语言,需要考虑内存泄露的问题。现在很多编程语言都会自动帮你释放未使用和丢失的内存,解决内存泄漏,这就是托管代码平台。经典的有:网。
C/C WEB服务器开发效率与其他编程语言的比较
C/C需要写很多代码才能完成一件事,大大降低了后端开发效率,同时也提高了个人编程能力。现在很多编程语言都提供了很多模块来完成某件事情。甚至可以说不是编程语言,而是专门调用C/C写的代码的脚本,比如Python!
Python很受后端开发者的欢迎,因为它简单,模块多,可以简单的调用模块来处理很多复杂的模块!
有时候没有CGI模块,WEB服务器会在开发文档里告诉你参数会存放在哪里,存放在哪个临时文件里,或者直接用C/C调用:
A.out aaa aaa a.out代码:
Int main(int x,int *a[]){}这是最经典的方式。x代表参数个数,A代表参数!
a通常是一个数组指针,指向每个参数!
for(int I=0;I x;i){printf(%s ,* a[I]);} CGI和FastCGI
CGI程序只能被请求一次,也就是说,一次只能执行一个客户端发出的请求。如果有一百个客户端同时请求这个程序,那么这个程序应该一个一个执行!
FastCGI是CGI的升级版。该规范可以通过多线程的方式同时执行CGI程序。当一百个客户端同时请求CGI程序时,服务器将同时执行一百个CGI程序来处理这些客户端。可以在WEB服务器的配置文件中修改选择相应的CGI和FastCGI方法,WEB服务器会根据这些方法做出相应的规范!
执行效率和算法
在前端将数据传输到后端之后,后端必须处理这些数据。以搜索引擎为例。当我们将相关数据输入搜索引擎时,要知道在庞大的万维网平台中,几乎有无数的网页资源,每天都有数以亿计的新网页诞生。
搜索引擎里有一个叫蜘蛛的模块,用来把这些数据爬下来,也就是网络爬虫,保存在本地服务器上。假设你的搜索引擎服务器里有几百亿的数据,数据库里存储了web路径、域名、网名,那么当用户在浏览器里输入某个关键词,就会发现海量的相同数据。然后,后端工作人员要做的就是将这些数据按照热度和排名的顺序显示在搜索页面的下拉框中,供用户选择。然后,此时考虑算法的要求。如果算法太复杂,那么后端会执行一两分钟再返回结果,那么用户体验会不会很差?
三。HTTP协议规范
这里不做详细介绍了,因为之前有博主写过关于HTTP/HTTPS协议规范的详细介绍,所以这里做个简洁的总结!
HTTPS之所以被称为HTTPS,是因为它在使用TCP协议加密时采用SSL算法加密,HTTPS传输过程比HTTP耗时更长!
其次,HTTPS握手过程需要证书验证,所以WEB服务器也必须支持SSL协议!
在浩浩荡荡的互联网中,就像开汽车一样,当我们开着卡车运送资源时,难免会遇到堵车的情况。然后需要流量规则规定我们如何传输,避免网络拥塞,同时还要避免两车相撞造成的数据丢失和丢包。因此,HTTP协议规范条款规定了如何在互联网中传输数据。比如HTTP协议规范确定使用TCP协议传输数据,防止网络拥塞或拥塞造成丢包。其实路由的选择是由cat(调制转换器)决定的,cat会根据当前连接的线路情况来确定最优的传输路由,而TCP只是指定如何完成这个传输。传输路由由猫完成,接收接收后,猫将数据发送到网卡,网卡对数据进行分析后发送到上层,形成了网络七层的概念。
上面的APDU和PPDU都是封装,因为上层需要把自己的数据封装成一个包,然后发给下层。下层是将这些数据解包,翻译其含义,并根据含义添加自己的消息格式,这就形成了APDU和PPDU包格式!
如果我要发送一个A字符到IP为1.0.0的地方,那么我需要填写IP地址和数据段信息,然后发送到传输层。传输层是对数据进行拆解分析其含义,然后进行格式转换压缩,确定传输方式,再发送到下一层。这种方法是为了保证不同数据结果格式的明确性(表示层之后各层的格式是统一的,因此,要求表示层统一格式),然后当物理层确定最优路由,以转换成比特的电路信号形式发送到指定路由时,路由器收到后,按照前面的步骤一步步解包,一步步分析包,最后发送到计算机上的指定程序!
其实和应用服务器一样,没有七层这个概念。其实只有三层。应用层选择路径、数据和方法,表示层对数据和方法进行分析,并对这些格式进行压缩加密后传输到传输层。传输层在拆解和确定方法,修改消息格式,添加新的包头,直接发送到物理层,由cat直接发送出去。在TCP中,不需要经过HTTP协议,只在WWW开头的万维网域名下有效!
相关:HTTP/HTTPS协议原理,HTTP/HTTPS协议原理,HTTP协议层开发