网络服务器
要在线查看网站,必须在服务器上发布。服务器是一种特殊的机器,其任务是倾听和回答客户的需求。在 Web 上发布资源的服务器在逻辑上被称为 Web 服务器。
更准确地说,一个网络服务器机器运行一个特定的软件程序(也称为网络服务器),能够发布网站。最流行的是 Apache、Microsoft IIS 和 nginx。
网络客户端
向服务器请求资源的机器称为 Web 服务端。实际上,真正的客户端是机器上运行的软件程序。一种众所周知的 Web 客户端类型是浏览器,它是 一种专门用于显示网页的程序。著名的网络浏览器包括 Mozilla Firefox、Chrome、Safari 和 Opera。
并非所有的Web 客户端类型都是浏览器。例如,搜索引擎机器人的移动应用程序也会练习服务器并要求他们提供内容。
客户端和服务器之间的通信
- 客户端启动交换,它向服务器发送特定Web资源请求。
- 服务器为请求准备一个结果。
- 服务器将此结果发送回客户端。
为了相互理解,客户端和服务端使用称为 http的标准协议。
HTPP,网络协议
HTTP,代表超文本传输协议,是万维网的技术基础。它是一种协议,一种允许两台机器相互通信的语言。
HTTPS 是 HTTP 的安全版本。
从技术上讲,HTTP 是一个非常简单的基于文本命令的协议。
HTTP 请求剖析
让我们研究前面描述的 Web 交换的第一部分:请求。
此HTTP请求以类似于以下的多行文本形式出现:
GET / HTTP/1.1
Host: xkcd.com
Accept: text/html
User-Agent: Mozilla/5.0 (Macintosh)
最重要是是第一行,它包含了:
- HTTP方法(请求类型,也称为 command)。这里,该 GET 方法表示资源访问请求。
- 请求的资源。这里,/ (根符号)表示对默认文档的请求。
- HTTP协议版本,这里是1.1
其他文本行称为标题字段。它们提供有关客户端请求的更多信息:服务器名称(Host)、接受的内容类型(Accept)、客户端软件详细信息(User-Agent)。它们是许多其他可能的标头字段。
主要的HTTP方法是GET访问资源并POST在服务器上推送一些信息。存在其他的,例如 HEAD,PUT 或 DELETE
HTTP 响应剖析
当接受到HTTP请求时,服务器会在内部查找信息。然后它建立一个适当的答案并将其发回。
服务端发送的HTTP响应看起来像这样。
HTTP/1.1 200 OK
Date: Fri, 22 Apr 2017 18:05:05 GMT
Server: Apache/2.2
Content-Type: text/html
<html>
<!-- HTML code of the page -->
<!-- ... -->
</html>
第一行包含响应状态:表示请求结果的三位数字。其他行是标题字段(Date,Content-Type等),提供有关响应的附加信息。
HTTP响应也可能包含数据。在此示例中,它包含与请求的资源对应的网页的对应的HTML代码。
HTTP状态码和URL
HTTP状态代码属于不同的系列,具体取决于它们的第一个数字。
家族 | 意义 | 例子 |
---|---|---|
1xx | 信息 | |
2xx | 成功 | 200:请求处理成功 |
3xx | 重定向 | |
4xx | 客户端错误 | 404:找不到服务器 |
5xx | 服务器错误 | 500:内部服务器错误 |
使用URL寻址
访问网址通常使用它们的地址,一段文本形式
http://www.mywebsite.com/myresourcepath/myresource
这个地址可以分为几个字部分:
- http:// 表示通过HTTP协议的访问
- www.mywebsite.com 是网站的域名
- /myresourcepath/myresource 是请求资源的路径
像这样的地址称为URL或统一资源定位器。URL唯一地描述了Web资源和请求它的方式。