Python——问一个web程序运行的流程

在浏览器地址栏中输入 www.baidu.com,我们最终能够看到百度的首页,在这个过程中都发生了什么?

简单的概括这个过程的流程其实就只有两句话:客户端发送请求,服务器返回响应。
这两句话是属于业界大牛的回答,身为一个菜鸡,我可不敢在面试的时候这么说,色即是空,空即是色不属于我,我还是个小和尚。
首先,会存在两个名词,客户端和服务器。
什么是客户端呢,比如(浏览器,App,爬虫,可视化测试工具),爬虫的本质是一串代码。我还没有学习到。
首先我们会在地址栏中输入URL地址,借用百度粑粑:www.baidu.com. 在这个过程中虽然我们只是输入了如上的地址。但是,浏览器会判断并补全我们的协议,这里就想起来了URL协议的组成部分(协议部分,域名,资源路径),浏览器为什么要判断我们的协议是http还是https呢,他俩有没有什么主要区别呢?http端口号是80,https是443端口号。
1.之后会先访问DNS域名解析服务器,里面存放的是具体的URL地址和ip地址的映射关系,类似于字典形式的存储,访问网站本质上都是通过ip,但是不好记忆,域名就是这么来了。但是DNS这个玩意是谁把这个玩意放进去的呢,这里我了解的是一般都是网络运行商完成的。
补充:世界上有13个根域名解释器,中国一台没有,你们快点加油啊!
2.获取到百度的ip地址,浏览器会直接通过ip地址向百度服务器发送请求:请求报文,包括请求行,请求头,请求协议,请求参数,请求方法(主要是四种GET,POST,PUT,DELETE对应的数据库的增删改查),服务器会新接收请求报文,并进行处理,同时还要返回相应报文,据说这就是我们以后web的工作,就是写接口(接收参数,检查参数,业务处理,返回数据四部总结),调借口(调用别人实现了的功能),接口是什么呢?相当于是一个门口,可以是一个函数,一个类,一个API,相当于是一个数据交互的通道。
3.在服务器的后面有一个强大的支持就是数据库,用来我们查询数据,在完成了上面的操作之后,服务器会生成相应报文,在这里,如果客户端访问的是静态资源(html,css,image,js)直接返回响应,但是如果是动态资源请求,后端服务器会根据参数的不同,返回不同的响应和状态码等参数。
请求参数是什么:就比如你在百度首页上输入一个搜索,ex:北京天气,这个就是参数。url地址中,?后面的,&进行分割的,=进行传值的就是查询字符串,通过这个查询字符串去返回不同的响应。
据说,在回答一个流程至少要回答5步以上,最好是10步,然后才能证明你对这个东西成功掌握。恐怕我还没有几个,任重而道远啊。

猜你喜欢

转载自blog.csdn.net/weixin_43617255/article/details/83790334