从零开始学Python Flask Web(一)--基础知识讲解

前言:馒头现在是一个逗逼渣男研究生,在决定写python web相关的东西之前,馒头写过java的ssh,ssm以及springboot。自学python后,走了很多弯路,为了世界更加美好,馒头决定把web知识系统的归纳一下,让我们一起走进BS结构,欢迎大家提出宝贵建议。


HTTP

首先说一下我们访问网站的流程:我们做好网站之后发布在互联网上(服务器),我们的服务器有一个全世界唯一的ip地址(类似111.111.111.111格式)。然后还会有域名(类似www.xxxxxxxx.com格式)。域名可以简单理解为ip的别名,因为一般人记不住ip,但是好记的域名可以解决这个问题。然后普通用户使用自己电脑的浏览器(客户端)------>输入域名----->域名解析器(DNS解析为正确的ip)--->访问到我们的服务器--->服务器把客户端请求的东西发送给客户端--->客户端看到服务器返回的东西。

资源: 客户端在浏览器上看到的可视化的东西基本都是资源,比如看到的图片,文本等。每一个资源都是有个唯一的地址,称为统一资源定位器,也就是URL。比如我打开百度首页的那个logo图片,会出来这个URL:https://www.baidu.com/img/bd_logo1.png?where=super,这就是这个图片资源的URL。

          1.URL 

            举个例子,https://www.baidu.com/img/bd_logo1.png?where=super

            http/https    称为方案(使用的传输协议)

             baidu.com   称为主机

             /img/     称为路径

            /bd_log1.png    称为资源

             ........................后面还有很多就不一一列举了。

          2.资源和媒体类型

             内容协商机制:服务器与客户端交互的时候,客户端会告诉服务器我要什么类型的东西,服务器会告诉客户端传送的是什么类型的内容,好让客户端知道什么类型的内容过来了。举个例子:我打开新浪首页然后检查资源,这里面的Response中的Content-type就是服务器告诉客户端的我发送过来的是一个text/html格式的文件。

消息:

            1.请求(Request):就是客户端向服务器请求资源,告诉服务器我要什么东西。看一下刚才我打开新浪首页的请求头,部分格式如下:我们访问的是新浪,使用GET方式访问,使用HTTPS协议。(方法有GET,POST,PUT,DELETE,HEAD,其中常用的是GET和POST,区别就是一般不使用GET方式向服务器提交数据,因为不太安全,GET方法会将你提交的数据直接加在URL后面,大家都看得到。而POST是自己在后台默默传递。)

                       2.响应(Response):服务器接收到客户端的请求后,返回给客户端的东西,大概有版本状态信息,headers,body等。举个栗子,状态信息就是常见的200.404等。headers一般如下图:

                        body一般如下:浏览器会把这堆body渲染成我们经常看到的绚丽好看的界面。

                     常见的状态信息:大家如果做过web,那一定对404很头疼。明白状态信息的问题所在,有利于我们定位错误。

                                                   100-199              给我们一些信息的

                                                    200-299              成功

                                                    300-399             转跳(我本来请求的是a地址,它给我转到了b地址)

                                                    400-499              一般是客户端的错误,客户端请求的不对。(404)

                                                    500-599             服务器错误(开发人员的噩梦)

第一次的基础知识储备先说到这里。希望每个程序员都有一个健康的身体。

现在这节内容比较抽象,因为我们在访问网址的时候只是在浏览器里输入了一个www.baidu.com类似的域名,其实那些request和reponse中的headers,body等那么一堆东西都在后台默默的给你完成了,我们做的只是输入域名点击回车。

猜你喜欢

转载自blog.csdn.net/qq_42666483/article/details/82415063