web理论知识--网页访问过程(附有Django的web项目访问流程)
当我们闲暇之余想上网看看新闻,或者看个电影,通常的操作是:打开电脑、打开浏览器、输入网址、浏览页面信息、点击自己感兴趣的连接......那么有没有想过,这些网页从哪里来的?过程中计算机又做了什么事情了?(PS,白话式叙述,有些啰嗦,勿喷。)
一、基础普及:
首先先定义几个名词,我们使用电脑上的浏览器访问网页,那么我们的电脑浏览器(Browser)就是客户端(Client),想一下:其实我们都是客户;而网上有一个大型的服务器(大点的电脑主机)用于存储我们看到的页面、视频、图片等等数据,服务器会根据我们的要求,将指定的内容发给我们,这个大型的服务器就是服务端(Server)。
客户端通过网络将需求发给服务端,服务端也是通过网络将数据发给客户端,数据在网络上高速传输,就好比汽车行驶在高速公路上,为了保证安全、顺畅的行驶,我们都需要遵守交通规则,同样数据在网络上传输也需要遵守一定的规则--称为协议,互联网相关的协议多如牛毛,所有的这些协议统称为TCP/IP协议族,而我们熟知的HTTP就属于其中的一员。
每一个服务器都有一个唯一的IP地址,这个IP地址相当于服务器的身份证号,不同的服务器IP地址肯定不同,而客户端访问服务器,实际上是通过IP地址找到服务器进行访问的,但是IP地址是纯数字,比如120.25.254.88,普通人类难以记住,于是聪明的人类就发明了域名,像:www.baidu.com、www.google.cn,这样就亲民多了,域名和IP地址一一对应,由浏览器负责将域名翻译成IP地址,这个过程叫做解析。
二、具体过程及解释
1、前期工作:开机、打开浏览器、输入网址(比如:www.python.org)
2、将输入的网址(学名:域名)进行解析
浏览器会先从客户端系统(也就是你的电脑)查询域名对应的IP地址,如果找到了,浏览器就想这个IP地址发出访问请求;
如果找不到对应的IP地址(第一次访问这个网站的情况),浏览器就会发起DNS请求,向DNS服务器(专门负责域名解析的服务器)查询IP地址,并保存到你的电脑,这时候浏览器就可以正常向匹配的服务器,发出访问请求了。
3、浏览器发送HTTP请求
请求信息通过浏览器进行包装,使其符合HTTP协议(应用层),然后通过传输层、网络层、链路层将信息不断处理,最后将处理后的信息传到网络上(上高速),通过网络传送到指定的服务器上,对TCP/IP分层管理感兴趣的可以浏览:,对HTTP感兴趣的可以浏览:。
4、服务器接收到网络上传输来的请求信息
服务器端通过TCP/IP各层的信息,最终请求信息中获取了:是谁要访问我、它想干嘛(想看文字、图片、视频的页面,还是想从我这下载文件等等)。
通过服务器判断,同意了客户端的请求,从自己的资源库里(系统文件)里找到相应的资源,或者运行相应的程序,将资源/结果整理成符合HTTP协议的响应信息(携带状态码),准备发回给客户端。
如果服务器没有同意客户端的请求,或者客户端想要的东西/结果,服务器没有/做不了,那么服务器也会整理一个符合HTTP协议的响应信息(携带状态码),准备发回给客户端。
5、客户端的浏览器通过网络获取到服务器传回的数据,进行解析、渲染后,呈献给我们。
三、附赠:Django的web项目访问流程
生产环境:Linux+Nginx+uWSGI+Django
1、首先客户端请求服务资源,
2、Nginx作为直接对外的服务接口,接收到客户端发送过来的http请求,会解包、分析,
如果是静态文件请求就根据nginx配置的静态文件目录,返回请求的资源,
如果是动态的请求,nginx就通过配置文件,将请求传递给uWSGI;
3、uWSGI 将接收到的包进行处理,并转发给wsgi,
4、wsgi根据请求调用django工程的某个文件或函数,处理完后django将返回值交给wsgi,
5、wsgi将返回值进行打包,转发给uWSGI,
6、uWSGI接收后转发给nginx,nginx最终将返回值返回给客户端(如浏览器)。
*注:不同的组件之间传递信息涉及到数据格式和协议的转换
对Django项目部署感兴趣的,请浏览:
使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识
web理论知识--网页访问过程(附有Django的web项目访问流程)的更多相关文章
- web理论知识--HTML结构及标签
一.参考书籍: <Web 前端开发 HTML5+CSS3+jQuery+AJAX 从学到用完美实践> 备注:本书为工具书. 二.HTML5元素: 按功能划分:基础.格式.表单.框架.图像. ...
- linux文件访问过程和权限
第1章 文件访问过程详解 1.1 文件访问过程 第2章 权限 2.1 对于文件rwx含义 r读取文件内容 w修改文件内容 需要r权限配合 只有w权限的时候,强制保存退出会导致源文件内容丢失 x权限表示 ...
- Web前端理论知识记录
Web前端理论知识记录 Elena· 5 个月前 cookies,sessionStorage和localStorage的区别? sessionStorage用于本地存储一个会话(session) ...
- Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 ...
- 用户对动态PHP网页访问过程,以及nginx解析php步骤
www.example.com | Nginx | 路由到www.example.com/index.php | 加载nginx的fast-cgi模块 | fast-cgi监听127.0.0.1:90 ...
- Django学习---Web框架及基础知识
Django学习---Web框架 web框架的本质 我们在学socket,我们创建一个socketserver,然后运行起来,有一个client客户端要连接socket服务端,连接上之后,如果两边都没 ...
- 学习FPGA过程中的理论知识
学习FPGA,先要有数电知识,最好有点C语言,,学好硬件描述语言,verilog或者vhdl.在有这些基础上,做一些小的模块不断积累.这里不再赘述. 下面介绍一下关于FPGA学习过程中的一些理论知识. ...
- Winsock网络编程笔记(4)----基本的理论知识
前面的笔记记录了Winsock的入门编程,领略了Winsock编程的乐趣..但这并不能算是掌握了Winsock,加深理论知识的理解才会让后续学习更加得心应手..因此,这篇笔记将记录一些有关Winsoc ...
- 利用Django进行Web开发
Web就是用来表示Internet主机上供外界访问的资源的.网页也统称为web资源.Internet上供外界访问的Web资源主要分为如下两类: 静态web资源:指web页面中供人们浏览的数据始终是不变 ...
随机推荐
- yyb博客的几道神仙题
该比赛链接 T5 题意: 给你一个\(n\times n\)的网格,开始有\(m\)个被涂成黑色的格子,如果存在三个格子\((x,y)\),\((y,z)\),\((z,x)\)满足\((x,y)\) ...
- angular的小实例
主要是使用了angular的指令. 学习地址:http://www.runoob.com/angularjs/angularjs-tutorial.html 1. 效果: 输入数据剩余字数会相应减少, ...
- Windows 记事本的 ANSI、Unicode、UTF-8 这三种编码模式有什么区别?
[梁海的回答(99票)]: 简答.一些细节暂无精力查证,如果说错了还请指出. 一句话建议:涉及兼容性考量时,不要用记事本,用专业的文本编辑器保存为不带 BOM 的UTF-8. * * * 如果是为了跨 ...
- InnoDB-MVCC与乐观锁
最近通过<高性能MySQL>一书学习MySQL方面的知识,在看到书中所讲InnoDB-MVCC部分的时候,有一种强烈的感觉,这不就是乐观锁吗(入门级小学徒的疑惑脸)?当下便去网上以各种方式 ...
- [物理学与PDEs]第2章第2节 粘性流体力学方程组 2.4 粘性热传导流体动力学方程组
粘性热传导流体动力学方程组: $$\beex \bea \cfrac{\p \rho}{\p t}+\Div(\rho{\bf u})&=0,\\ \rho \cfrac{\rd {\bf u ...
- [物理学与PDEs]第1章习题8 磁场分布 $\ra$ 电流分布
设在真空中有一圆柱形磁场 $$\bex B(P)=\sedd{\ba{ll} \cfrac{2I}{Cr},&r\geq R,\\ \cfrac{2I}{CR^2}r,&r<R, ...
- 对评分矩阵进行分解,SVD与LSI
摘自 推荐系统 https://www.cnblogs.com/lzllovesyl/p/5243370.html 一.SVD奇异值分解 1.SVD简介 SVD(singular value deco ...
- HDU - 1013
wa了两遍: (1)没有弄清楚输入数据的范围,实际上是字符串输入,数字很大. (2)此题太水,没有标数据范围. #include<iostream> #include<cstdio& ...
- tomcat日志格式中的含义
%a - 远程IP地址 %A - 本地IP地址 %b - 发送的字节数,不包括HTTP头,或“ - ”如果没有发送字节 %B - 发送的字节数,不包括HTTP头 %h - 远程主机名 %H - 请求协 ...
- 51nod--1079 中国剩余定理
题目: 1079 中国剩余定理 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K ...