CSC8018

编程入门 行业动态 更新时间:2024-10-05 11:19:13

CSC8018

CSC8018

Lesson1:What is the web?

The Internet and the World Wide Web

通常,我们可以互换地用“万维网”和“互联网”来指代网络。这两个词关系密切,但不是同义词.

互联网是指计算机的物理网络(通过电线,玻璃纤维电缆和卫星连接),使远程计算机能够相互通信和交换数据。它的起源可以追溯到阿帕网链接到一个外部网站。1969年

高级研究计划局网络(英语:Advanced Research Projects Agency Network,ARPANET)是第一个具有分布式控制的广域分组交换网络,也是第一个实现TCP/IP协议组的计算机网络之一。这两项技术成为互联网的技术基础。

第一台计算机于1969年连接,网络控制协议于1970年实施。该网络于1971年宣布投入使用。进一步的软件开发使远程登录、文件传输和电子邮件成为可能。该网络迅速扩张,并于1975年将运营控制权移交给国防通信局。

在历史上,语音和数据通信是基于电路交换的方法,如在传统电话网络中举例说明的,其中每个电话呼叫被分配两个通信站之间的专用端到端电子连接。连接是通过交换系统建立的,交换系统在呼叫期间连接这些系统之间的多个中间呼叫支路。

第一代IMP是由BBN技术公司使用霍尼韦尔DDP-516计算机的加固型计算机版本制造的,配置有24 KB的可扩展磁芯存储器和16通道直接多路复用控制(DMC)直接存储器访问单元。DMC与每台主机计算机和调制解调器建立了自定义接口。除了前面板灯外,DDP-516计算机还具有一组特殊的24个指示灯,用于显示IMP通信通道的状态。每个IMP可以支持多达四个本地主机,并可以通过早期的数字信号0租用电话线与多达六个远程IMP通信。该网络连接了犹他州的一台计算机和加州的三台计算机。后来,美国国防部允许大学加入网络,共享硬件和软件资源。

最初的四个节点被指定为开发和调试1822协议的测试平台,这是一项重大任务。虽然它们在1969年以电子方式连接,但直到1970年实现网络控制协议,才实现了前两个主机-主机协议,即远程登录(Telnet)和文件传输(FTP),这两个协议在1969年至1973年之间指定和实现。该网络于1971年宣布投入使用。到1973年左右,电子邮件在大多数网站上建立后,网络流量开始增长。

通过阿帕网取得的技术进步和实际应用有助于形成包括互联网在内的现代计算机网络。分组交换、分散式通信概念的发展和实施,以及TCP/IP等协议的发展,为全球网络奠定了基础,彻底改变了全球的通信、信息共享和合作研究。

相比之下,万维网由文档和网页组成,通过超链接相互连接。万维网的基本规范和实现是由Tim Berners Lee于1991年在CERN开发的。他将网络和互联网的区别描述如下:

“互联网('Net)是一个网络的网络。它基本上是由计算机和电缆制成的。Vint Cerf和Bob Kahn所做的就是弄清楚如何使用它来发送信息的小“包”。这就是互联网所做的。它可以在世界任何地方发送数据包,通常不到一秒。

许多不同种类的程序都使用互联网:例如,电子邮件,早在我发明的全球超文本系统之前就已经存在了,我称之为万维网(Web)。现在,视频会议和流式音频通道是其他事物之一,就像Web一样,以不同的方式编码信息,并在计算机之间使用不同的语言(“协议”)来提供服务。

万维网(WWW),通常称为Web,是一种信息系统,其通过用户友好的方式使内容能够在因特网上共享,旨在吸引IT专家和业余爱好者之外的用户。[1]它允许根据超文本传输协议(HTTP)的特定规则通过Internet访问文档和其他Web资源。《中国日报》

文档和可下载媒体通过网络服务器可用于网络,并且可以由诸如网络浏览器的程序访问。万维网上的服务器和资源通过称为统一资源定位符(URL)的字符串来标识和定位。原始的并且仍然非常常见的文档类型是以超文本标记语言(HTML)格式化的网页。这种标记语言支持纯文本、图像、嵌入式视频和音频内容以及实现复杂用户交互的脚本(短程序)。HTML语言还支持超链接(嵌入式URL),提供对其他Web资源的即时访问。网络导航或网络冲浪是在多个网站上跟随这种超链接的常见做法。Web应用是用作应用软件的网页。Web中的信息使用超文本传输协议(HTTP)在Internet上传输。

万维网是信息时代发展的核心,是数十亿人在互联网上进行交互的主要工具。

万维网是由超链接和URI链接的文档和其他资源的全球集合。Web资源是使用HTTP或HTTPS访问的,HTTP或HTTPS是使用Internet传输协议的应用程序级Internet协议。

下面的示例演示了Web浏览器在访问URL .html处的页面时的功能。浏览器使用全球分布式域名系统(DNS)将URL(example)的服务器名称解析为Internet协议地址。此查找返回一个IP地址,例如203.0.113.4或2001:db8:2e::7334。然后,浏览器通过在Internet上向该地址的计算机发送HTTP请求来请求资源。它从HTTP服务所熟知的特定TCP端口号请求服务,以便接收主机可以将HTTP请求与它可能正在服务的其他网络协议区分开来。HTTP通常使用端口号80,HTTPS通常使用端口号443。HTTP请求的内容可以像两行文本一样简单:

GET /home.html HTTP/1.1
Host: example

接收HTTP请求的计算机将其传递到在端口80上侦听请求的Web服务器软件。如果Web服务器可以完成请求,它会向浏览器发送一个HTTP响应,表示成功:

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8

然后是所请求页面的内容。基本网页的超文本标记语言(HTML)可能如下所示:

<html><head><title>Example – The World Wide Web</title></head><body><p>The World Wide Web, abbreviated as WWW and commonly known ...</p></body>
</html>

Web浏览器解析HTML并解释单词周围的标记(<title>、<p>段落等),以格式化屏幕上的文本。许多网页使用HTML来引用其他资源的URL,如图像、其他嵌入式媒体、影响页面行为的脚本以及影响页面布局的级联样式表。浏览器向Web服务器发出其他HTTP请求,以获取这些其他Internet媒体类型。当浏览器从Web服务器接收到内容时,它会按照HTML和这些附加资源的指定将页面逐步呈现到屏幕上。

HTML

超文本标记语言(HTML)是用于创建网页和Web应用程序的标准标记语言。它与层叠样式表(CSS)和JavaScript一起构成了万维网的三大基石技术。

Web浏览器从Web服务器或从本地存储器接收HTML文档,并将文档呈现为多媒体网页。HTML从语义上描述了网页的结构,并且最初包含了文档外观的提示。

HTML元素是HTML页面的构建块。使用HTML构造,图像和诸如交互式表单之类的其他对象可以被嵌入到所呈现的页面中。HTML提供了一种创建结构化文档的方法,它通过表示文本的结构语义,如标题、段落、列表、链接、引用和其他项。HTML元素由标记来描述,标记使用尖括号书写。和等标签直接将内容引入页面。其他标记(如<p>围绕并提供有关文档文本的信息)可能包含其他标记作为子元素。浏览器不显示HTML标记,但使用它们来解释页面的内容。

HTML可以嵌入用脚本语言(如JavaScript)编写的程序,这会影响网页的行为和内容。包含CSS定义了内容的外观和布局。万维网联盟(W3C)是HTML和CSS标准的维护者,自1997年以来一直鼓励使用CSS而不是显式表示的HTML。

Scheme specifiers

Web URI开头的方案说明符http://和https://分别表示超文本传输协议或HTTP安全。它们指定用于请求和响应的通信协议。HTTP协议是万维网运行的基础,HTTPS中添加的加密层在浏览器发送或检索机密数据(如密码或银行信息)时至关重要。Web浏览器通常会自动将http://添加到用户输入的URI(如果省略)。

Pages

网页(也写作网页)是适合万维网和Web浏览器的文档。Web浏览器在监视器或移动终端上显示网页。

网页通常指的是可见的内容,但也可以指计算机文件本身的内容,通常是一个文本文件,包含用HTML或类似的标记语言编写的超文本。典型的网页提供用于经由超链接(通常称为链接)浏览到其它网页的超文本。Web浏览器在呈现每个Web页面的同时将经常必须访问多个Web资源元素,诸如阅读样式表、脚本和图像。

在网络上,Web浏览器可以从远程Web服务器检索网页。Web服务器可以限制对诸如公司内联网之类的专用网络的访问。Web浏览器使用超文本传输协议(HTTP)向Web服务器发出此类请求。

一个静态的网页是完全一样的存储,作为Web服务器的文件系统中的Web内容。相比之下,动态网页是由Web应用程序生成的,通常由服务器端软件驱动。当每个用户可能需要完全不同的信息时,使用动态网页,例如,银行网站,网络电子邮件等。

Static page

静态网页(有时称为平面页面/固定页面)是一种完全按照存储的方式传递给用户的网页,与由Web应用程序生成的动态网页形成对比。

因此,静态网页为所有用户显示来自所有上下文中的相同信息,服从web服务器协商文档的内容类型或语言的现代能力,其中这样的版本可用并且服务器被配置为这样做。

Dynamic pages(Dynamic web page and Ajax)

服务器端动态网页是其构造由处理服务器端脚本的应用服务器控制的网页。在服务器端脚本中,参数决定每个新网页的组装如何进行,包括设置更多的客户端处理。

客户端侧动态网页使用在浏览器中运行的JavaScript来处理网页。JavaScript程序可以通过文档对象模型(DOM)与文档交互,以查询页面状态并对其进行更改。然后,相同的客户端技术可以以相同的方式动态更新或更改DOM。

然后,用户或计算机程序重新加载动态网页以改变某些可变内容。更新信息可以来自服务器,或者来自对该页面的DOM所做的更改。这可能会也可能不会截断浏览历史记录或创建要返回的保存版本,但是使用Ajax技术的动态网页更新既不会创建要返回的页面,也不会截断所显示页面的Web浏览历史记录。使用Ajax技术,最终用户可以在Web浏览器中将一个动态页面作为单个页面进行管理,而该页面上呈现的实际Web内容可能会有所不同。Ajax引擎只位于浏览器上,从应用程序服务器为其客户机请求DOM的一部分。

动态HTML,或DHTML,是用于创建非静态网页的技术和方法的总称,尽管自从AJAX普及以来,它已经不再常用,AJAX这个术语现在很少使用。客户端脚本,服务器端脚本,或这些的组合使浏览器中的动态Web体验。

JavaScript是一种脚本语言,最初由当时的Netscape的Brendan艾希在1995年开发,用于网页。标准版本是ECMAScript。为了使网页更具交互性,一些Web应用程序还使用JavaScript技术,如Ajax(异步JavaScript和XML)。客户端脚本与页面一起交付,可以向服务器发出额外的HTTP请求,或者响应用户操作(如鼠标移动或单击),或者基于经过的时间。服务器的响应用于修改当前页面,而不是用每个响应创建一个新页面,因此服务器只需要提供有限的增量信息。可以同时处理多个Ajax请求,用户可以在检索数据时与页面进行交互。网页也可以定期轮询服务器以检查是否有新信息可用。

Website

网站是相关网络资源的集合,包括网页、多媒体内容,通常用公共域名标识,并在至少一个网络服务器上发布。值得注意的例子是wikipedia、google和amazon。

网站可以通过引用标识站点的统一资源定位符(URL)经由公共互联网协议(IP)网络(诸如互联网)或专用局域网(LAN)来访问。

网站可以具有许多功能并且可以以各种方式使用;网站可以是个人网站、公司的企业网站、政府网站、组织网站等。网站通常专用于特定主题或目的,范围从娱乐和社交网络到提供新闻和教育。所有可公开访问的网站共同构成万维网,而私人网站,如公司员工的网站,通常是内联网的一部分。

作为网站的构建块的网页是文档,其通常由散布有超文本标记语言(HTML、XHTML)的格式化指令的纯文本组成。他们可能会将其他网站的元素与合适的标记锚结合起来。使用超文本传输协议(HTTP)访问和传输网页,HTTP可以可选地采用加密(HTTP安全,HTTPS)来为用户提供安全性和隐私。用户的应用程序(通常是Web浏览器)根据其HTML标记指令将页面内容呈现到显示终端上。

网页之间的超链接向读者传达网站结构,并指导网站的导航,通常以包含网站Web内容目录的主页开始。有些网站需要用户注册或订阅才能访问内容。订阅网站的示例包括许多商业网站、新闻网站、学术期刊网站、游戏网站、文件共享网站、留言板、基于网络的电子邮件、社交网络网站、为不同类型的市场提供实时报价的网站以及提供各种其他服务的网站。最终用户可以在一系列设备上访问网站,包括台式机和笔记本电脑、平板电脑、智能手机和智能电视。

Browser

Web浏览器(通常称为浏览器)是用于访问万维网上的信息的软件用户代理。要连接到网站的服务器并显示其页面,用户需要有一个Web浏览器程序。这是用户运行的程序,用于在用户的计算机上下载、格式化和显示网页。

除了允许用户查找、显示和在网页之间移动外,Web浏览器通常还具有保存书签、记录历史、管理cookie(见下文)和主页等功能,并且可能具有记录登录网站的密码的功能。

最流行的浏览器是Chrome、Firefox、Safari、Internet Explorer和Edge。

Server

Web服务器是服务器软件或专用于运行所述软件的硬件,可以满足万维网客户端请求。一般来说,Web服务器可以包含一个或多个网站。Web服务器通过HTTP和其他几个相关协议处理传入的网络请求。

Web服务器的主要功能是存储、处理和向客户端提供网页。客户端和服务器之间的通信使用超文本传输协议(HTTP)进行。交付的页面最常见的是HTML文档,除了文本内容外,还可能包括图像、样式表和脚本。
多个Web服务器可用于高流量网站;此处,戴尔服务器安装在一起,用于维基媒体基金会。

用户代理(通常是Web浏览器或Web爬虫)通过使用HTTP请求特定资源来发起通信,服务器则以该资源的内容或错误消息(如果无法这样做)进行响应。资源通常是服务器辅助存储上的一个真实的文件,但这并不一定是这种情况,它取决于Web服务器的实现方式。

虽然主要功能是提供内容,但HTTP的完整实现还包括从客户端接收内容的方式。此功能用于提交Web表单,包括上传文件。

许多通用Web服务器还支持使用Active Server Pages(ASP)、PHP(超文本预处理器)或其他脚本语言的服务器端脚本。这意味着Web服务器的行为可以在单独的文件中编写脚本,而实际的服务器软件保持不变。通常,此函数用于动态生成HTML文档(“on-the-fly”),而不是返回静态文档。前者主要用于从数据库中检索或修改信息。后者通常更快,更容易缓存,但不能提供动态内容。

Web服务器也经常嵌入在打印机、路由器、网络摄像头等设备中,仅为本地网络服务。然后,网络服务器可以用作用于监视或管理所讨论的设备的系统的一部分。这通常意味着无需在客户端计算机上安装任何其他软件,因为只需要一个Web浏览器(现在大多数操作系统都包含该浏览器)。

Cookie

HTTP cookie(也称为web cookie、Internet cookie、浏览器cookie或简称cookie)是一小段从网站发送的数据,并在用户浏览时由用户的web浏览器存储在用户的计算机上。Cookie是一种可靠的机制,用于网站记住有状态信息(例如在线商店购物车中添加的项目)或记录用户的浏览活动(包括单击特定按钮,登录或记录过去访问过的页面)。它们还可以用来记住用户以前输入到表单字段中的任意信息,如姓名、地址、密码和信用卡号。

Cookie在现代网络中发挥着重要作用。也许最重要的是,身份验证cookie是Web服务器最常用的方法,用于了解用户是否登录,以及他们使用哪个帐户登录。如果没有这样的机制,站点将不知道是发送包含敏感信息的页面,还是要求用户通过登录进行身份验证。身份验证cookie的安全性通常取决于发布网站和用户Web浏览器的安全性,以及cookie数据是否加密。安全漏洞可能允许黑客读取cookie的数据,用于访问用户数据,或用于访问(使用用户的凭据)cookie所属的网站(例如,请参阅跨站点脚本和跨站点请求伪造)。

跟踪cookie,尤其是第三方跟踪cookie,通常被用作编辑个人浏览历史的长期记录的方法-这是一个潜在的隐私问题,促使欧洲和美国立法者在2011年采取行动。[56][57]欧洲法律要求所有针对欧盟成员国的网站在将非必要的Cookie存储到用户设备上之前,必须获得用户的“知情同意”。

Google Project Zero研究员Jann Horn描述了中间商(如Wi-Fi热点提供商)可以读取Cookie的方式。他建议在这种情况下使用隐身模式的浏览器。

Search engine

网络搜索引擎或互联网搜索引擎是一种软件系统,旨在执行网络搜索(互联网搜索),这意味着以系统的方式在万维网上搜索网络搜索查询中指定的特定信息。搜索结果通常呈现在一行结果中,通常被称为搜索引擎结果页面(SERP)。信息可以是网页、图像、视频、信息图表、文章、研究论文和其他类型的文件的混合。一些搜索引擎还挖掘数据库或开放目录中的可用数据。与仅由人类编辑维护的网络目录不同,搜索引擎还通过在网络爬虫上运行算法来维护实时信息。不能被网络搜索引擎搜索的互联网内容通常被描述为深网。

Deep web

深层网,隐形网或隐藏网是万维网的一部分,其内容不被标准的网络搜索引擎索引。与深网相对的术语是表层网,任何使用互联网的人都可以访问。计算机科学家Michael K.伯格曼在2001年创造了“深网”这个词,作为搜索索引词。

深网的内容隐藏在HTTP表单后面,并且包括许多非常常见的用途,例如网络邮件,网上银行和用户必须付费的服务,并且受到付费墙的保护,例如视频点播,一些在线杂志和报纸等。

深网的内容可以通过直接URL或IP地址定位和访问,并且可能需要密码或其他安全访问通过公共网站页面。

Caching

Web缓存是位于公共互联网或企业内的服务器计算机,用于存储最近访问的网页,以便在原始请求后的特定时间内请求相同内容时缩短用户的响应时间。大多数Web浏览器还通过将最近获得的数据写入本地数据存储设备来实现浏览器缓存。浏览器的HTTP请求可能只要求自上次访问以来已更改的数据。网页和资源可能包含过期信息,以控制缓存来保护敏感数据(如在线银行),或促进频繁更新的网站(如新闻媒体)。即使是具有高度动态内容的站点也可能允许基本资源仅偶尔刷新。网站设计人员发现,将CSS数据和JavaScript等资源整理成几个站点范围的文件是值得的,这样就可以有效地缓存它们。企业防火墙通常会缓存一个用户请求的Web资源,以使多个用户受益。一些搜索引擎存储频繁访问的网站的缓存内容。

Privacy

每当客户端请求一个网页时,服务器可以识别请求的IP地址。Web服务器通常在日志文件中记录IP地址。此外,除非设置为不这样做,否则大多数Web浏览器都会在可查看的历史记录功能中记录所请求的网页,并且通常会在本地缓存大部分内容。除非服务器-浏览器通信使用HTTPS加密,否则Web请求和响应以纯文本形式在Internet上传输,并且可以由中间系统查看、记录和缓存。隐藏个人身份信息的另一种方法是使用虚拟专用网络。VPN加密在线流量并屏蔽原始IP地址,降低用户身份识别的机会。

当网页要求用户提供个人身份信息时,例如用户的真实的姓名、地址、电子邮件地址等,基于web的实体可以将当前的web流量与该个人相关联。如果网站使用HTTP Cookie、用户名和密码验证或其他跟踪技术,则可以将之前和之后的其他网络访问与所提供的可识别信息相关联。通过这种方式,基于Web的组织可以开发和建立使用其网站的个人的个人档案。它可能能够为个人建立一个记录,其中包括有关他们的休闲活动,他们的购物兴趣,他们的职业以及他们的人口统计资料的其他方面的信息。这些配置文件对营销人员、广告商和其他人具有潜在的兴趣。根据网站的条款和条件以及适用于这些配置文件的当地法律,这些配置文件中的信息可能会在不通知用户的情况下出售、共享或传递给其他组织。对于许多普通人来说,这只不过意味着收件箱里的一些意想不到的电子邮件,或者未来网页上的一些不可思议的相关广告。对其他人来说,这可能意味着花时间沉迷于一个不寻常的兴趣可能会导致洪水进一步有针对性的营销,可能是不受欢迎的。执法、反恐和间谍机构也可以根据个人在网络上的兴趣或倾向来识别、定位和跟踪个人。

社交网站通常试图让用户使用他们的真实的姓名、兴趣和位置,而不是化名,因为他们的高管认为这会让用户的社交网络体验更吸引人。另一方面,上传的照片或未经保护的声明可以被个人识别,他可能会后悔这种曝光。雇主、学校、父母和其他亲属可能会受到社交网络配置文件的影响,例如文本帖子或数码照片,而这些帖子不是发布者打算为这些受众提供的。网络欺凌者可能会利用个人信息骚扰或跟踪用户。现代社交网站允许对每个帖子的隐私设置进行细粒度控制,但这些设置可能很复杂,不容易找到或使用,特别是对于初学者来说。[80]上传到网站上的照片和视频造成了特别的问题,因为它们可以将一个人的脸添加到在线个人资料中。有了现代和潜在的面部识别技术,就有可能将这张脸与其他地方拍摄的其他先前匿名的图像、事件和场景联系起来。由于图像缓存、镜像和复制,很难从万维网中删除图像。

Standards

Web标准包括许多相互依赖的标准和规范,其中一些规范管理Internet的各个方面,而不仅仅是万维网。即使这些标准不以网络为重点,也会直接或间接地影响网站和网络服务的开发和管理。考虑因素包括网页和网站的互操作性、可访问性和可用性。

从广义上讲,Web标准包括以下内容:

    万维网联盟(W3C)发布的建议
    Web超文本应用技术工作组(WHATWG)制定的《生活标准》
    互联网工程任务组(IETF)发布的请求评论(RFC)文档
    国际标准化组织(ISO)发布的标准
    Ecma International(前身为ECMA)出版的标准
    Unicode标准和由Unicode联盟发布的各种Unicode技术报告(UTR)
    互联网域名管理局(IANA)维护的名称和号码注册表

Web标准不是固定的规则集,而是不断发展的Web技术最终技术规范集。Web标准是由标准化组织开发的,这些标准化组织由感兴趣的团体组成,通常是竞争各方,他们被特许承担标准化的任务,而不是由单个个人或公司开发并宣布为标准的技术。区分那些正在开发的规范和那些已经达到最终开发状态的规范(对于W3C规范,最高成熟度级别)是至关重要的。

What is the web?

超文本早于互联网
互联网早于万维网

Lesson 2: How the internet works

互联网是由计算机、网络基础设施、协议和软件(客户端和服务器)组成的物理网络(或者更准确地说是网络的网络)。网络基础设施允许硬件设备基于通用通信标准彼此物理连接。协议通过控制传输数据的类型、大小、结构和传递来指定如何进行通信。对我们来说,最重要的通信协议是TCP/IP。

TCP/IP:互联网的心脏

TCP/IP是互联网的底层协议。还有其他标准,如UDP,但我们不会在我们的课程中遇到这些。TCP/IP涉及从/向具有IP地址的任何设备发送信息。这些是互联网上设备的唯一4字节标识符,例如128.240.233.249。

TCP/IP本身是两个协议的组合:Internet协议(IP)和传输控制协议(TCP)。在TCP/IP传输中,数据被分割成所谓的包:原始数据的小尺寸和枚举块。数据包包含一个带有地址、排序信息和元数据的文本报头,后面是一个包含任意数据有效载荷的主体。

每个数据包都使用Internet协议通过Internet从发送方独立路由到接收方。IP是一个低级协议,而IP是一个无连接协议,通过它发送和接收分组,但是在发送者和接收者之间没有进一步的通信,例如,为了确认接收。数据包可以乱序到达,有任意的时间延迟,多次到达,或者根本没有到达!

传输控制协议位于互联网协议之上,协调数据传输。它将传出的数据分解为数据包并组装传入的数据包,它确认接收并可以请求重新传输丢失的数据包。

域名

互联网协议通过格式为128.240.233.249的IP地址运行。由于这不是很方便人类记忆,域名已被引入,使互联网更容易使用。域名将数字IP地址映射到基于文本的名称,例如newcastle.ac.uk <=> 128.240.233.249。为了解析域名的IP地址,客户端向域名服务(DNS)服务器发出请求。成千上万的DNS服务器存在于互联网上,并交换和更新彼此的目录。每个ISP通常会维护并指向其DNS服务器。

一个简单的请求

    客户要求提出请求
    客户端进行DNS查询www.ncl.ac.uk?”
    DNS服务器查找并响应128.240.233.249
    客户端和服务器建立双向TCP连接
    客户端发送协议特定请求(例如HTTP请求)
    服务器发送特定于协议的响应
    客户端处理和处理响应

传输控制协议
- 处理计算机之间的直接连接 客户端/服务器软件和网络接口
- 将来自应用程序的传出消息分解为数据包通过IP发送
- 将传入的数据包组装成要传递的消息回应用
数据包有两个部分:
- 报头(寻址/排序信息和元数据)
- 正文(实际数据有效载荷)
网际协议
- 处理与任何设备之间的数据包传递,
IP地址
- 互联网上设备的唯一数字标识符128.240.233.249128.240.233

IP:路由数据包

IP使用报头中的地址信息将数据包路由到指引他们到达目的地
VoIP路由是无连接的
- 不需要端点之间的固定连接
- 使数据能够通过多条路径传输,端点
- 一条“线”可以处理多个连接/服务
- 数据包可以绕过故障点重新路由
但风险包括.
- 数据损坏/数据包丢失/重复数据包到达
- 不按顺序传送的数据包(发送A -> B,接收B -> A)

IP路由的性能可能受到以下因素的影响

不可预测性意味着IP不能保证
所有数据包都会到达在固定时间内
- 按正确顺序
- 一点也不!
为了缓解,目标设备上的TCP检查,根据报头重组数据包信息,可以…
- 请求重新传输丢失/损坏的数据包
- 正确重新排序数据包
- 拒绝接受/等待更多(断开连接)

域名

域名使互联网更容易(对人类)
通过将数字IP地址映射到文本-基于名称,例如

128.240.233.249 <=> wwwskills.ac.uk
当设备使用域发出请求时将其解析回数字IP地址由DNS服务器
- 互联网上成千上万的DNS服务器
- 您的设备/ISP将主要指向新域名注册将自动在全球DNS系统中传播

Lesson 3: Web architecture — HTTP, URLs, HTML

万维网基于以下关键架构组件:

    超文本传输协议(HTTP),它规定了请求/响应消息的格式和语义
    统一资源标识符(URI)和统一资源定位符(URL),用于标识Web资源
    HTML和其他内容格式

超文本传输协议

HTTP是使网络工作的协议(就像TCP/IP使网络工作一样)。它的作用是指定Web客户端和Web服务器之间的通信。通常,客户端将通过发送HTTP请求消息向服务器请求资源。服务器将使用适当的HTTP响应消息进行响应,包括要显示的任何内容。HTTP请求和响应以TCP/IP数据包的形式在网络上传输。

HTTP是一个无状态协议:每个请求/响应对都是一个独立的交换。这使协议简单,因为不需要在协议级别上维护请求关联状态。缺点是,确实需要将状态与多个客户端-服务器交互(例如来自身份验证质询的登录凭据)相关联的客户端需要在应用程序级别上提供此类状态控制。

以下是从Web客户端到Web服务器的HTTP请求示例:

GET /index.html HTTP/1.1
Date: Mon, 02 Nov 2020, 14:33:00
Host: www.ncl.ac.uk  
  Links to an external site.
User-Agent: Mozilla/5.0 ... etc

如图所示,HTTP是一种基于行的文本格式。第一行表示HTTP方法(这里是GET,稍后会有更多内容)、资源位置(这里是/index. html)和协议版本(HTTP/1.1)。以下行是HTTP头,其中包含诸如日期、主机等头字段。头的结尾由一个空行指示。

服务器可能会使用以下响应来回答此请求:

HTTP/1.1 200 OK
Date: Mon, 02 Nov 2020, 14:33:52
Server: Apache/2.2.16 (Unix)
Content-Length: 4488
Content-Type: text/html​<!DOCTYPE html>​
<html>​
…​ XHTML WEB PAGE CONTENT …​
</html>​​

响应以一行状态方法开始,指示协议、响应代码(此处为200,稍后更多)和状态文本“OK”)。这是其次再次由一对夫妇的头字段,重要的是“内容长度”和“内容类型”。头部表示响应确实包含4488字节的主体。空白行结束了标题部分,接下来是包含所请求网页的HTML的响应主体。

这完成了客户端与服务器的请求/响应交互。客户端现在可以获取响应的有效负载并对其进行操作-例如,通过呈现所交付网页的HTML。服务器可以自由地去服务更多的请求,而不必保留客户端的任何内存,除了日志条目。如果服务器确实希望跟踪多个客户端-服务器交互,则最典型的方法是依靠浏览器cookie技术在HTTP头字段中跟踪此类会话
链接到外部网站。

常见HTTP方法

    GET方法用于从服务器获取资源。它应该不会改变服务器上资源的状态(该方法被认为是安全的),并且对同一资源的多个后续GET请求应该具有相同的结果(这被称为等时性)。
    HEAD方法类似于GET,但它不是在响应中返回资源,而是只返回HTTP响应头中包含的元数据。例如,这可以用来查询服务器上的资源自上次客户端访问它以来是否发生了变化。
    POST方法用于修改服务器上的资源。应该如何更新资源的信息(比如我们将要看到的表单数据)在POST请求的消息体中发送。

HTTP方法仅区分请求消息。所有请求都由相同类型的HTTP响应来应答。换句话说,GET或POST请求没有专用的响应类型(但HTTP响应的状态或内容可能会因请求的方法而异)。

我们已经看到,HTTP响应包含一个响应代码,该代码通常对请求的结果进行分类。这是用于错误处理,重定向,身份验证请求a.s.o.反应一般五类:

Class​

Range​

Examples​

Informational​

1XX​

100 Continue
101 Switching Protocols​

Success​

2XX​

200 OK
201 Created
204 No Content

Redirection​

3XX​

300 Multiple Choices
301 Moved Permanently

Client Error​

4XX​

400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found

Server Error​

5XX​

500 Internal Server Error

URLs

统一资源定位符(URL)是用于访问万维网上的资源的通用唯一标识符。以下是一些示例:

SchemeAuthorityPathQueryFragment
http://www.ncl.ac.uk/
http://www.ncl.ac.uk/computing
https://search.ncl.ac.uk/s/search.html?query=csc8018
https://www.ncl.ac.uk/computing/people/profile/haroldfellermann.html

#teaching

该方案指定用于连接的协议,授权是注册DNS域名的域或子域,路径是主机服务器上的本地资源定位符。可选的查询参数(例如用于搜索或分页)可以添加到目标URL。这些查询参数必须遵循特定的编码。片段用于定位HTML文档中的特定部分(如果目标文档支持)。

HTTP/1.1:超文本传输协议
- 请求/响应的格式和语义
消息
统一资源标识符
- 标识资源的已删除字符串
HTML/XHTML:超文本标记语言
另外...
DNS:域名系统
TCP/IP:Internet Protocol Suite

HTTP: Request-response protocol

超文本传输协议使网络工作!
- 客户端通过组装和发送HTTP请求消息
- 服务器使用适当的HTTP响应消息进行响应,包括要显示的任何内容
HTTP请求和响应作为TCP/IP数据包传输:
- 标题中的元数据和实体主体中的内容(可选)HTTP无状态
每个请求/响应对都是一个独立的交换。
- 没有协议级别的状态维护(用于可扩展性)

HTTP methods

通过HTTP执行的操作
- HEAD、GET、POST、PUT、POST等.
HTTP和GET是必需的
- 任何处理HTTP的东西都支持它们
GET返回资源的当前状态和内容
- 这是HTTP的“默认”方法
HEAD只返回响应元数据
- 即没有主体的GET(内容)

HTTP headers

头是请求/响应的元数据交换
有些是通用的,适用于请求和响应
例如
日期->消息的日期/时间戳
Cache-Control ->途中缓存(或不缓存)的说明
理解阅读、设置和操作HTTP头对于管理网站非常有用
请注意,标题可能会被欺骗

More HTTP headers

Request headers (4 classes)
Response preferences -> Accept, Accept-Charset etc...
Additional request info -> Authorization, From etc...
Conditional headers -> If-Modified-Since etc...
Constrain server behaviour -> Max-Forwards etc...
Response headers (4 classes)
Redirection -> Location
Additional server info -> Server, Retry-After etc...
Authentication(Authenticate) -> WWW-Authenticate, Proxy-
Caching -> Age etc...

Lesson 4: Introduction to Web content

eWeb内容基于HTML(超文本标记语言)从服务器传送到客户端。HTML是一种基于文本的标记语言,可以被视为网页的源代码。它包含网站的文本内容,图像,电影或其他嵌入式资源的链接,以及控制页面呈现和行为的指令。

关注点分离

Web文档通常有三个关注点:

    内容:页面上的信息(有意义的结构和语义信息)
    表示:页面的外观(字体、颜色、布局等)
    行为:互动和响应行为

为了区分这些问题,Web内容采用了三种不同的技术

    HTML用于页面内容的语义标记
    CSS(层叠样式表)用于演示样式和布局
    客户端行为的JavaScript

将这些问题分开有着至关重要的好处:

    该文件保持了一个清晰的语义结构,独立于其呈现方式,从而提高了例如可访问性。
    可以在不修改页面内容的情况下更改表示,从而提高可伸缩性。

Web content basics

源代码交付给客户端(浏览器)
- 平面文件,动态生成,通过HTTP,通过本地文件系统等。
浏览器处理文档并呈现显示给用户
- 最终外观是一个组合的来源建设(by作者)和呈现能力(在web浏览器中)
所有Web文档都使用HTML -超文本标记语言
其他嵌入式技术增强了显示和行为

A web document typically has three concerns

内容-页面传达的信息
- 有意义的结构(章节标题、段落、重点等等)。和题材
Presentation -页面的外观
- 字体
- 布局
- 配色方案和图形
- 养眼
行为-交互或响应功能
- 响应用户输入
- 管理外部数据操作
- 处理浏览器不一致/要求
- 更多的眼睛糖果!

Separation of concerns

内容结构和语义
HTML
演示文稿的风格和布局
CSS
行为脚本和交互性
JavaScript(客户端)
PHP、Perl、Java、Ruby等(服务器端)

更多推荐

CSC8018

本文发布于:2024-02-28 14:50:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770052.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!