web

什么是万维网?

world wide web

Web的本质是一个由超文本文档互相链接而成的文档系统,可以看做一整个分布式的文档。万维网是互联网提供的众多服务之一,运行在互联网的基础上。

超文本文档(hypertext document)是指具有超链接功能的文档,通常被用来创建web文档(网页)。它可以包含文本、图片、..音频、视频等。我们一般通过浏览器来查看超文本文档,而浏览器则通过互联网来获取这些文档。

超文本文档中一般包含若干超链接(hyperlink),用户可以跟随超链接,而浏览器负责取回超链接以标识的超文本文档。

URL(uniform resource locator),统一资源定位符,用来全局唯一地标识Web的资源。超链接所标示的地址、浏览器地址栏的文字都是URL。

 

HTML(HyperText Markup Language,超文本标记语言)是一种创建超文本文档的语言,已经广泛地用于网页设计。HTML是用一系列的HTML标签写成的,每种HTML标签都有对应的语义和一致的外观。html文件通常以.html作为后缀名。

一个简单的HTML文件可能是这样的(我们的介绍基于HTML5标准):

<html>
<head>
  <title>Hello, HTML!</title>
</head>

<body>
  <p>这是一个简单的HTML文件</p>
</body>

</html>

HTTP协议

通过HTML和CSS我们可以编写被浏览器识别、渲染并显示的网页,但是这些页面仅仅能够被我们自己在本地浏览,如何让互联网上的其他人也能看到它们呢?这涉及到web文档在互联网传输需要的协议:HTTP协议。

HTTP(超文本传输协议,HyperText Transfer Protocol)提供了一种发布和接收HTML页面的方法。HTTP协议标准是由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)制定的,其中最著名的是RFC 2616,定义了HTTP协议中现今广泛使用的一个版本—HTTP 1.1。

让我们用一个互联网上的真实网站Google作为例子,如果我们想要访问Google,那么只要打开任何一种浏览器(IE, Firefox, Chrome, Safari...),在地址栏中输入http://www.google.com,接下来Google主页就显示在了浏览器中。在这个过程中,浏览器内部实际做了这样一些事情:

  • 确定google.com的主机位置(即IP)
  • 向Google主机发送HTTP请求
  • Google主机应答该请求,并使用HTTP协议传输HTML文档给浏览器
  • 浏览器将返回的内容(HTML)渲染并显示

可以将一个HTTP请求理解为一段文本,上面的例子中,我们发送的HTTP请求如下描述:

GET / HTTP/1.1
HOST www.google.com

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36

这个请求会被发送到Google主机的80端口(HTTP默认端口),如果Google的主机成功接收到了请求,会返回一段文本:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8

<HTML内容>
可以把上述文件保存为hello.html(见参考代码),然后从浏览器打开。你会在页面中看到这是一个简单的HTML文件字样,同时浏览器的标签栏会显示Hello, HTML!。现在你可以不必理解上述的HTML文件,在之后的课程中我们会详细介绍HTML的语法。

上述响应包含了及部分内容:

  • HTTP协议版本,这里是1.1
  • 响应状态码,200表示成功(OK)
  • Content-Type表示响应内容的类型,这里是HTML(还有可能是pdf, images等等,浏览器会根据它做不同的现实逻辑)
  • 响应的主体内容,即Google首页的HTML文本

上述的过程是一个典型的HTTP通信流程:客户端发送请求(request),服务器返回响应(response)。Web开发的目的,便是实现上述过程中Google服务器所做的事情:得到Request,进行一系列计算,返回Response。

HTTP 服务器

我们已经了解了Web文档的编写(HTML)与Web文档的传输协议(HTTP)。这时我们需要一个Web服务器软件来帮助我们获得Request,返回Response。Web服务器软件只是一个运行在计算机上的普通软件,但它会监听该计算机的80端口(这是HTTP协议默认使用的端口,当然我们也可以指定它监听其他的端口),获取HTTP Request,返回HTTP Response。

有了Web服务器软件,我们只需要编写从Request计算得到Response的逻辑,而不必关心HTTP协议的传输过程。

常见的web服务器软件包括:

  • Apache软件基金会的Apache HTTP服务器
  • Microsoft的Internet Information Server(IIS)
  • nginx公司的nginx
posted @ 2017-01-18 10:38  jean1  阅读(218)  评论(0)    收藏  举报