如何理解 Python Web 开发?

作者:俞坤

原文:https://www.yukunweb.com/2018/2/understand-python-web/

因为 代码的优雅美观且易于维护这一特点,越来越多的人选择使用 做Web开发。而 的 框架百花齐放,目前比较流行的框架有大包大揽的 ,小巧灵活的 、 ,还有性能高效的异步框架 、 。这么多框架只要选择一个,阅读他的文档,就可以很轻松的搭建一个 ,完全不需要去管他实现的原理。

本篇文章意在对一个web开发做一个梳理。

前端网页三剑客

我们打开浏览器输入一个网址 ,然后就看到了浏览器给我们显示的页面,这个时候打开浏览器开发者工具,点击 ,刷新页面,会看到下方的请求的 ,点击 ,就可以看到服务器返回给浏览器的 文件信息了。如果复制 响应的内容,保存为 并且在浏览器打开,依然可以看到首页的内容,但是似乎缺少了一些页面的样式和功能。

这是因为当浏览器接收到首页的 源码后,它会根据 的规则去显示页面,然后再根据 里的链接,自动发送HTTP请求给服务器,拿到相应的图片,和 、 等资源,最终显示出一个完整的页面。所以我们会在 下面能看到很多额外的以 , 等后缀的请求了。

其实我们看到的页面就是浏览器按照 的规则,展示给我们的。 告诉浏览器那里是导航,那里是主栏,那里是侧栏。而这些信息如何显示,或者是显示的样式,就是 文件的功劳。至于比如导航的下拉隐藏上拉显示就是 的作用。

如果想要做Web开发,就一定得熟悉 、 、 三剑客的知识,这里推荐W3school的前端教程,也是我学习前端的地方:W3school

客户端和服务器通信

理解了前段三剑客,就知道如何去写一个网页。那么从我们在浏览器的地址栏输入 ,到 页面呈现出来到底经历了什么。

如图,一般这种通过发送请求获取服务器资源的Web浏览器,都可以称为客户端(client)。首先发送一个请求(request)给服务器,大多是以GET请求方式访问,服务器接收到你的请求,然后取到请求的资源,返回给客户端。

服务器和客户端之间交流是怎么进行的呢,服务器是怎么理解客户端的请求的呢。这里就需要一种协议规范,就是HTTP(HyperText Transfer Protocol,超文本传输协议)。可以说, 是建立在 协议上通信的。

如图,仍然是之前的例子,打开浏览器访问 ,打开浏览器开发者工具,点击图中标记的选项卡(记得点view parsed),可以看到客户端发给服务器的请求头前两行。

第一行开头的GET表示请求访问服务器的类型,称为方法(method)。随后的字符 指明了请求访问的资源对象,即请求URI。最后的 ,即HTTP的版本号,用来提示客户端使用的 协议功能。

综上所述,第一行请求内容的意思是:请求访问某台 服务器上的 (首页)页面资源。所以第二行的 表示请求的域名也就是服务器所在地址。

如图,如果是 请求的话,不仅会有请求头部信息,还有一个 的请求实体内容。

接收到请求的服务器呢,他会将请求内容的处理结果以响应的形式返回,看图中的第一行:

开头的部分仍然是服务器对应的 版本,紧接着的 表示请求的处理结果的状态码 (status code) 和原因短语。 状态码就表示响应成功,常见的 表示访问错误, 表示服务器响应错误。这里的 是没有固定的规则的,你也可以让他返回 啥的。

下一行是服务器信息,本站用的是 服务器,在下一行显示了创建响应的日期时间。在下一行的 表示内容的类型,客户端会依赖他判断响应的内容是网页还是音频,图片等类型。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180619B0N44C00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券