学习笔记六:web通信以及web前后端的组成
网站访问流程图:

资源定位:
DNS
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。访问网站的实质就是解析其域名得到IP地址,再转向其网站。
步骤:
参考⽂章:https://www.cnblogs.com/yihr/p/9720715.html
1)系统⾸先会查找本地的DNS缓存和hosts⽂件信息,确认其中是否有与,域名www.baidu.com所对应的IP地址。如 果有,就直接访问这个IP地址所对应的www.baidu.com域名服务器。
2)如果没有找到,那么,系统将会把浏览器的解析请求发送给本地主机所指定的DNS服务器,称为LDNS。如果LDNS服 务器中有域名www.baidu.com所对应的IP地址,则返回给客户端的浏览器,如果没有,则继续请求其他DNS服务器。
3)LDNS服务器会从DNS系统的根(.)开始请求对域名www.baidu.com的解析。根DNS服务器全球只有13台,根域名 服务器是没有域名www.baidu.com解析记录的。但是它会有域名www.baidu.com所对应的顶级域.com的解析记录,因 此直接把顶级域.com所对应的DNS地址返回给LDNS服务器。
4)LDNS服务器获取到顶级域.com对应的DNS服务器地址后,就会去.com服务器请求对www.baidu.com域名的解析。 在顶级域名服务器也不会有www.baidu.com的解析记录的。但是它有www.baidu.com的⽗级域名的解析记录,即 baidu.com。因此顶级域名.com服务器⼜会把baidu.com所对应的DNS服务器的IP地址返回给LDNS。 5)LDNS服务器收到baidu.com所对应的IP地址后,就会去baidu.com域名服务器请求对www.baidu.com的域名解 析。Baidu.com域名对应的DNS服务器是该域名的授权DNS服务器。这个DNS服务器就是企业购买域名时⽤于管理解析的服务器。
6)baidu.com域名DNS服务器会把www.baidu.com域名所对应的IP地址给解析出来,然后发给LDNS。
7)LDNS把解析出来的结果,www.baudu.com所对应的IP地址发送给客户端的浏览器。并且LDNS也会将其域名和对应 的地址缓存到cache中。
8)客户端浏览器收到后,也会将其域名以及对应的IP地址缓存的到DNS缓存和hosts⽂件中。
TCP/IP协议
在通过浏览器请求访问某个网站时,不仅要通过HTTP请求还要通过TCP/IP请求,并且会首先通过TCP建立连接(TCP会建立三次握手),然后是HTTP请求。在完成HTTP请求后会首先关闭HTTP请求然后关闭TCP请求。
URL协议
url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。浏览器通过url定位资源。
URL格式解析
schema://host[:port#]/path/.../[?query-string][#anchor]
例如:http://www.dark5.com/dark.php?id=1 ftp://www.dark5.com/dark.php?id=1 http://192.168.1.1/dark.php?id=1 (本例最后没有添加锚点)
- schema协议
- host[:port]域名或者IP端⼝
- path/.../路径
- [?query-string]发送给http服务器的数据
- [#anchor]锚点
web前端
组成:
html:使用html描述的文件需要通过web浏览器显示出效果,也即在网页中显示效果。
javascript:(1.可以用于处理表单验证,用户输入,用户行为及浏览器动作:页面加载时触发事件;页面关闭时触发事件;用户点击按钮执行动作;验证用户输入内容的合法性…
2.我们也可以使用多种方法来执行 JavaScript 事件代码:HTML 事件属性可以直接执行 JavaScript 代码;HTML 事件属性可以调用 JavaScript 函数;可以为 HTML 元素指定自己的事件处理程 序;可以阻止事件的发生)
- JavaScript 能够改变页面中的所有 HTML 元素
- JavaScript 能够改变页面中的所有 HTML 属性
- JavaScript 能够改变页面中的所有 CSS 样式
- JavaScript 能够对页面中的所有事件做出反应
css :层叠样式表(Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。
(xss漏洞:通过将一些代码嵌入html当中,然后浏览器会渲染html,之后浏览器会调用javascript的解释器来执行javascript的代码,这样就造成了一些xss漏洞)
web后端
组成:
web服务(器):Web服务器一般是指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache,Nginx,IIS。
脚本语言:脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。
语言解释器:解释器(Interpreter),又译为直译器,是一种电脑程序,能够把高级编程语言一行一行直接转译运行。
数据库:数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
工作流程:(详细见:https://www.cnblogs.com/xiangyujojo/p/8649825.html)
常见的组合:
| 操作系统 | Web服务器 | 解释器环境 | 数据库 | 脚本语言 |
| Windows server | iis | .net | Access/Mssql | asp |
| Linux | apache | php解释器 | mysql | php |
| Unix/windows | tomcat | Jsp解释器 | oracle | jsp |
浙公网安备 33010602011771号