实现WWW的基础技术

首先,客户端根据某资源的URL向WebServer提出请求,WebServer的HTTPDaemon(守护进程)将此请求的参数通过标准输入stdin和环境变量(EnvironmentVariable)传递给指定的CGI程序,并启动此应用程序进行处理,处理结果通过标准输出stdout返回给HTTPDaemon进程,再由HTTPDaemon进程返回给客户端,由浏览器负责解释执行,将最终结果显示在用户面前。实现WWW的通信协议是HTTP(HypertextTransferProtocol,超文本传输协议),它定义了HTTP的通信交换机制、请求及响应消息的格式等;HTML(HypertextMarkupLanguage,超文本标注语言)用来描述WWW上发布的信息,浏览器通过解释执行HTML文件显示出图文并茂的WWW信息,向用户提供良好的信息查询界面;CGI负责调用相应的处理程序,并返回处理结果。本文将从HTTP的通信交换机制和CGI的工作原理入手,对WWW的基础技术进行较详细的介绍,以帮助读者从本质上更深入地理解WWW的一切行为和特征。

HTTP的通信交换机制

WWW要实现诸多目标,其中最基本的四项包括:*分布式信息系统;*对多重协议提供一个统一通用的接口;*对超媒体支持;*可扩充性,能够支持所有的数据格式。

HTTP之前的其他协议都不能完全实现上述要求,因而HTTP就应运而生了。HTTP规范表明,HTTP协议是一种根据明确性和速度要求,为建立分布式协作超媒体信息系统而设计的协议,它是一种简单的、无状态的、面向对象的协议,可用于多种任务,如名字服务器和分布式对象管理。HTTP常常在某种程度上引起人们的误解,仿佛HTTP只能传输超文本,其实不然,你可以用它传输各种对象,而不必考虑其数据类型。

一、HTTP的特点

HTTP设计得简单而灵活,它是无状态和"无连接"的,基于Client/Server模式并且支持元信息和内容类型标识。它具有六个重要的特点:

1.以Client/Server模型为基础

HTTP支持客户与服务器之间通信及相互传送数据,一个服务器可以为分布在世界各地的许多客户服务。

2.简易性

HTTP被设计成一个非常简单的协议,使得Web服务器能高效地处理大量请求,客户机要连接到服务器,只需发送请求方式和URL路径等少量信息。HTTP规范定义了七种请求方式,最常用的有三种:GET、HEAD和POST。每一种请求方式都允许客户以不同类型的消息与Web服务器进行通信,Web服务器也因此可以是简单小巧的程序。由于HTTP协议简单,HTTP的通信与FTP、Telnet等协议的通信相比,速度快而且开销小。

3.灵活性与内容-类型(content-type)标识

HTTP允许任意类型数据的传送,因此可以利用HTTP传送任何类型的对象,并让客户程序能够恰当地处理它们,内容-类型标识指示了所传输数据的类型。打个比方,如果数据是罐头,内容-类型标识就是罐头上的标签。

4."无连接"性

5.无状态性

HTTP是无状态的协议,这既是优点也是缺点。一方面,由于缺少状态使得HTTP累赘少,系统运行效率高,服务器应答快;另一方面,由于没有状态,协议对事务处理没有记忆能力,若后续事务处理需要有关前面处理的信息,那么这些信息必须在协议外面保存;另外,缺少状态意味着所需的前面信息必须重现,导致每次连接需要传送较多的信息。

6.元信息(metainformation)

收到数据的浏览器可以根据元信息确定服务器发来的是什么内容,预料有多少数据,确知是否接收到完整的数据,以及发送过程中是否有错,这样客户就可以知道传输对象的类型。元信息被定义为"关于信息的信息",元信息允许服务器提供所发送数据的信息,例如,HTTP可以提供所发送的对象的语言和类型,也可以用元信息来实现有条件请求和报告事务完成。元信息的引入使得HTTP协议所能做的工作更多了。

二、HTTP的通信交换过程

HTTP通信建立在TCP/IP连接之上,缺省的TCP端口号是80,但也可以使用其他端口号。图2所示的是一个HTTP服务器在端口80上接受来自多个远程客户连接时的情形。Web服务器运行着一个守护进程(HTTPDaemon),它始终在端口80监听着来自远端客户的请求。当一个请求发来时,它就会产生一个子进程来处理当前请求,守护进程继续以后台方式运行,在端口80继续监听来自远端的连接请求。

图2

HTTP通信中客户提出请求应该带上全部必要的信息,客户机和服务器之间不能对不明确的问题进行磋商。一旦客户提出请求,服务器感到信息不够时没有办法要求客户给出进一步信息。客户与服务器通信流程图如图3所示。

图3

三、HTTP的请求和响应消息格式

在WWW信息的传递过程中,客户端向服务器按照特定的格式发出请求消息,服务器端处理此请求,并将结果按照特定的格式作为响应返回给客户。HTTP的消息格式与MIME相似。

1.请求的格式

方法URIHTTP版本号首部(回车换行)实体──主体

2.响应的消息格式

HTTP-VersionStatus-CodeReason-Phrase首部(空行)Entity-Body

状态码表示服务器是否成功地满足了客户的请求,状态码由一个三位整数和解释状态码含义的正文短语组成。状态码以1、2、3、4、5开头,在HTTP/1.1中,1类状态码表示的是信息性(informational)提示;2类状态码表示成功--服务器理解客户的请求,并且毫无困难地给出了响应;3类码表示发生了重定向--服务器理解请求并能够取得资源,但发现资源不在指定的位置而在其他地方;4类码表示客户出错;5类码表示服务器出错。所有这些状态码中,需要熟悉的只有几个。经历最多的是200(OK),不过也许会碰到400(Badrequest)和404(Notfound),偶尔也有500(Internalservererror)。如果想把服务器重定向到新的位置,而不是返回一个仅仅链接到对象新位置的文档时,301(MovedPermanently)和302(Movedtemporarily)将特别有用。响应消息的首部域中,通常会指明所传输数据的编码压缩机制、服务器端软件等。实体主体是所传输的数据,由于HTTP对于以任意格式传输文档的自由度很大,所以它可以是图形、音频、视频文件等多媒体对象,只需在首部域中标明其类型即可。对任意格式传输数据的完全开放性,正是HTTP和Web所提供的最重要的优越性。

CGI的工作原理

一、CGI的工作原理

CGI(CommonGatewayInterface)是外部应用程序与Web服务器交互的一个标准接口。CGI应用程序可以完成客户端与服务器的交互操作,它打破了服务器软件的局限性,允许用户根据需要采用各种语言去实现无法用HTTP、HTML实现的功能,给WWW提供了更为广阔的应用空间。例如,一个能够访问外部数据库的CGI程序可以使客户端用户通过Web服务器进行数据库的查询。同时,CGI也为如何在不同的平台之间进行沟通提供了范例。CGI工作的主要流程是:1.一个用户请求激活一个CGI应用程序;2.CGI应用程序将交互主页中用户输入的信息提取出来;3.将用户输入的信息传给服务器主机应用程序(如数据库查询);4.将服务器处理结果通过HTML文件返回给用户;5.CGI进程结束。一个CGI程序可以实时产生动态的HTML文件,它能根据用户的需求输出动态信息,将数据库服务器中的信息作为数据源对外提供服务,将WWW服务和数据库服务结合起来。如图4所示,客户端向Web服务器提出请求,Web服务器运行对应的CGI程序,CGI程序向数据库服务器提出请求,数据库服务器将查询结果返回Web服务器,Web服务器再将查询结果返回客户端,一个查询请示结束。

图4

二、ISAPI的工作原理及其性能

ISAPI即InternetServerApplicationProgramInterface,是微软提供的一套面向Internet服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,例如提供了过滤器应用程序接口等。ISAPI的工作原理和CGI大体上是相同的,都是通过交互式主页取得用户输入信息,然后交服务器后台处理(如图5所示)。但是二者在实现机制上大相径庭。ISAPI与CGI最大的区别在于:在ISAPI下建立的应用程序都是以动态链接库的形式存在的;而CGI的应用程序一般都是可执行程序。

THE END
1.2023Web前端开发八股文&面试题(万字系列)——这篇就够了!1.1 html标签的类型(head, body,!Doctype) 他们的作用是什么 !DOCTYPE 标签 它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令 head: 是所有头部元素的容器, 绝大多数头部标签的内容不会显示给读者 该标签下所包含的部分可加入的标签有 base, link, meta, script, style和title ...https://developer.aliyun.com/article/1353677
2.META标签一般包含有哪几个?()【单选题】对人体有生理意义的双糖主要有:蔗糖、乳糖和( )。 查看完整题目与答案 【单选题】大部份光的介质对光的传播在各个方向都相同,此介质称为( )。 查看完整题目与答案 【单选题】对人体有生理意义的多糖主要有:糖原、食物纤维和( )。 查看完整题目与答案 【单选题】光密介质的特点是( )。 查看完...https://www.shuashuati.com/ti/2847c996b8674919b229bcbbf9332360.html
3.有哪些常用的meta标签?()是meta标签中最重要的标签,在搜索引擎的排名规则中占有重要的地位。 点击查看答案 第4题 stata里meta分析模块不包含() A、常用meta分析模块 B、累计meta分析模块 C、meta回归分析 D、生存分析 E、漏斗图 点击查看答案 第5题 常用的办公软件有哪些 常用办公软件有哪些? 点击查看答案 第...https://www.shangxueba.cn/7247284.html
4.HTMLmeta标签总结与属性的使用介绍之前学习前端中,对meta标签的了解仅仅只是这一句。 <meta charset="UTF-8"> 但是打开任意的网站,其head标签内都有一列的meta标签。比如我博客的。 但是自己却很不熟悉,于是把meta标签加入了寒假学习计划的最前方。 简介 在查阅w3school中,第一句话中的“元数据”就让我开始了Google之旅。然后很顺利的在英文版...https://www.imooc.com/article/4475
5.有哪些常见的meta标签有哪些常见的 meta 标签 先说一下 <meta> 元素是什么。 凡是在 <head> 元素中,不能用这几个元素 (<base>, <link>, <script>, <style>, <title>) 来表示的元数据,都要用 <meta> 元素来表示。 再说一些常见的 <meta> 元素类型。 <meta charset="utf-8"> // 指定字符集 ...https://www.jianshu.com/p/09472f5e3e4b
6.HTML<meta>标签提示:meta 元素有多种不同用法,而且一个 HTML 文档中可以多个 meta 元素。 提示:通过<meta> 标签,有一种方法让网页设计师控制视口(即用户在网页中可见的区域)(请参见下面的"设置视口"实例)。 注意:每个meta 元素只能用于一种用途。如果想要使用的特性不止一个,那就应该在 head 元素中添加多个 meta 元素。 https://www.w3school.com.cn/tags/tag_meta.asp
1.WebApp之Meta标签WebApp之Meta标签 <meta name="apple-touch-fullscreen" content="yes">"添加到主屏幕“后,全屏显示<meta name="apple-mobile-web-app-capable" content="yes" /> 这meta的作用就是删除默认的苹果工具栏和菜单栏。content有两个值”yes”和”no”,当我们需要显示工具栏和菜单栏时,这个行meta就不用加了,...https://www.u72.net/daima/nxbzm.html
2.更改meta标签真的会影响谷歌SEO排名吗?在数字营销的世界里,每一个细节都可能成为决定成败的关键。作为一名长期在SEO领域摸爬滚打的从业者,我深知meta标签对于网页在搜索引擎中表现的重要性。今天,我们就来深入探讨一下,更改meta标签是否真的会影响谷歌SEO排名。 一、meta标签:网页的隐形名片 https://www.batmanit.cn/blog/google/45604.html
3.什么是Meta标签?哪些Meta标签对搜索引擎SEO优化有作用?网站策划当谈及到meta标签对搜索引擎排名的影响,很多人都存在误解,在过去许多已经失去作用的标签仍然被频繁使用。那么什么是Meta标签?哪些Meta标签对搜索引擎SEO优化有作用?本文将提供Meta标签相关内容供大家了解,希望对大家有所帮助和启发 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用! https://www.jb51.net/yunying/419531.html
4.什么是META标签–升兔互动META标签的属性 name 属性 name 属性提供了名称/值对中的名称。HTML 和 XHTML 标签都没有指定任何预先定义的 <meta> 名称。通常情况下,您可以自由使用对自己和源文档的读者来说富有意义的名称。”keywords” 是一个经常被用到的名称。它为文档定义了一组关键字。某些搜索引擎在遇到这些关键字时,会用这些关键字...http://www.st-lt.com/?p=117
5.什么是Meta标签?如何做好网页中Meta标签的SEO优化设置在做SEO优化的过程中,网页代码中的Meta标签可以说对网站的关键词排名有着举足轻重的地位,如果SEO人员能在Meta标签上进行了适合搜索引擎的撰写方式,可在很大程度地提升网站的排名,同时也有利于站点内容的收录,所以给每个网页加上Meta值就成为了SEO中必不可少的工作之一。 https://m.aoyouwl.com/h-nd-1599.html
6.HTML关于meta标签的使用介绍前端易笔记meta标签共有两个属性:http-equiv和name;不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。 name属性 name属性主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。 meta标签的name属性语法格式是: ...http://art.yibiji.com/html/11236.html
7.<meta>:元数据元素备注: name 属性在 <meta> 元素中具有特殊的语义;另外,当一个 <meta> 标签中,有 name、http-equiv 或者charset 三者中任何一个属性时,itemprop 属性不能被使用。 charset 该属性声明了文档的字符编码。如果存在该属性,则其值必须是字符串 "utf-8" 的不区分 ASCII 大小写的匹配,因为 UTF-8 是 HTML5 文档...https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/meta
8.优化方案(通用12篇)1.网站页面头部meta标签代码的优化 包含了页面编码、三大标签(标题title、关键词keywords、描述description),需要正确的填写内容或调用代码。 2.网站H标签代码的优化 一个页面的H1标签只能出现一次,在文章页面中的文章标题可以使用H1标签,其他每个页面只能使用一次H1标签(将重要的内容、文字加上H1)。H其他标签可以适当的...https://m.unjs.com/fanwenku/242533.html