Web服务器
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
当在浏览器输入URL后,浏览器会先请求DNS服务器,获得请求站点的 IP 地址(即根据URL地址“www.mingrisoft.com”获取其对应的IP地址如101.201.120.85),然后发送一个HTTP Request(请求)给拥有该IP的主机(明日学院的阿里云服务器),接着就会接收到服务器返回的 HTTP Response(响应),浏览器经过渲染后,以一种较好的效果呈现给用户。HTTP基本原理如图1所示。
图1 HTTP基本原理
我们重点来看Web服务器。Web服务器的工作原理可以概括为以下4个步骤:
(1)建立连接:客户端通过TCP/IP协议建立到服务器的TCP连接。
(2)请求过程:客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档。
(3)应答过程:服务器向客户端发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理后得到的数据返回给客户端。由客户端解释HTML文档,在客户端屏幕上渲染图形结果。
(4)关闭连接:客户端与服务器断开。
步骤2中客户端向服务器端发起请求时,常用的请求方法如表1所示。
表1 HTTP协议的常用请求方法及其描述
方 法 | 描 述 |
GET | 请求指定的页面信息,并返回实体主体 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改 |
HEAD | 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容 |
DELETE | 请求服务器删除指定的页面 |
OPTIONS | 允许客户端查看服务器的性能 |
步骤3中服务器返回给客户端的状态码,可以分为5种类型,由它们的第一位数字表示,如表2所示。
表2 HTTP状态码及其含义
代 码 | 含 义 |
1** | 信息,请求收到,继续处理 |
2** | 成功,行为被成功地接受、理解和采纳 |
3** | 重定向,为了完成请求,必须进一步执行的动作 |
4** | 客户端错误,请求包含语法错误或者请求无法实现 |
5** | 服务器错误,服务器不能实现一种明显无效的请求 |
例如,状态码200,表示请求成功已完成;状态码404,表示服务器找不到给定的资源。
下面,我们用谷歌浏览器访问明日学院官网,查看一下请求和响应的流程。步骤如下:
(1)在谷歌浏览器中输入网址:www.mingrisoft.com,按下<Enter>键,进入明日学院官网。
(2)按下<F12>键(或单击鼠标右键,选择“检查”选项),审查页面元素。运行效果如图2所示。
图2 打开谷歌浏览器调试工具
(3)单击谷歌浏览器调试工具的“Network”选项,按下<F5>键(或手动刷新页面),单击调试工具中“Name”栏目下的“www.mingrisoft.com”,查看请求与响应的信息。如图3所示。
图3 请求和响应信息
图3中的General概述关键信息如下:
l Request URL:请求的URL地址,也就是服务器的URL地址。
l Request Method:请求方式是GET。
l Status Code:状态码是200,即成功返回响应。
l Remote Address:服务器IP地址是101.201.120.85,端口号是80。