了解WEB
web
即全球广域网
World Wide Web
,也称万维网,是一种基于超文本和
HTTP
的、全球性的、动态交互
的、跨平台的分布式图形信息系统。是建立在
Internet
上的一种网络服务,为浏览者在
Internet
上查找和
浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将
Internet
上的信息节点组织
成一个互为关联的网状结构
web
是一种交流方式
![](https://img-blog.csdnimg.cn/28171109f7b44f6495fdd62022c7d223.bmp)
WEB工作原理
将编写好的文件放在服务器上,供其他人访问
WEB服务器
WEB
服务器就是一台连接到互联网的计算机,等待处理用户的各种请求(浏览网页、看电影、听音乐等)
WEB
服务器处理浏览器发送来的请求,找到对应的资源后再返回给浏览器
WEB浏览器
浏览器向服务器发送请求,然后接收
WEB
服务器返回回来的数据,并显示在浏览器上
用户从浏览器获得资源
利用
DNS
协议进行域名解析
-->
建立
tcp
协议三次握手过程
-->
客户端发出访问网站相应页面请求
(发出
http
协议请求报文)
-->
服务端发出相应访问页面的请求信息(发出
http
)
-->
断开
tcp
协议
四次挥手过程
- 静态网页的网址形式通常如 www.deom.com/demo.htm,网页后缀通常为.htm、.html、.shtml、.xml
-
动态网页的网址形式通常如 http://www.demo.cn/index.asp?id=1 , 网页后缀通常为.asp 、 .jsp 、 .php 、 .perl 、 .cgi 因人因时因地而发生变化
-
逻辑结构是文档间关系的描述,它定义了文档间的链接,而物理结构则描述了文档的实际位置
利用DNS协议进行域名解析
DNS
称为域名服务,主要作用是负责把域名解析对应的
IP
地址。就是把
www.baidu.com
解析为对应的
IP地址
111.13.101.208
,有了
IP
地址就相当于知道百度服务器在哪了,接下来就是去找它。
DNS
体系中查找记录,分为两种查找方式:递归查询和迭代查询
- 递归查询:由DNS客户端发起,一级一级的向上提交查询申请,直至查询终止
- 迭代查询:一般情况下由DNS服务器之间完成,即本地DNS向上一级DNS提交查询,上级DNS并不直接返回查询结果,而是告知DNS应该向哪里去查找。
请记住查询顺序:
-
HOSTS表--> 本地DNS -->上层DNS(包括根DNS)
网站的基本特征
网站就是一个或多个网页的集合。从广义上讲,网站就是当网页发布到
Internet
上以后,能通过浏览器在
Internet
上访问的页面
按照网站处理的业务不同,将网站可以分为:政府部门网站、电子商务网站、企业信息网站、信息资源网站、信息导航网站
- 域名
- 网站标志
- 数量众多的网页
- 网页的风格统一
- 便捷的导航系统
- 分层的栏目组织
- 切合主题的内容
- 用户能与网站进行双向交流的栏目
- 搜索信息的功能
- 用户指南和网站动态信息
Web网站开发流程
从制作的角度,建立一个网站可分为十个阶段,每一个阶段都有不同的目标和要求
- 计划阶段
- 初步建设阶段
- 连接阶段
- 交互阶段
- 数据库阶段
- 对外阶段
- 商业阶段
- 应用阶段
- 资本运营阶段
- 更新阶段
客户端发出访问网站相应页面请求
建立连接后,发送请求报文,想看什么数据。 输入
www.baidu.com
时,默认请求的是
index.html
首页文件
1,请求行:
- 请求的方法(get post)
- 请求的数据信息(默认请求index.html首页文件)
- 请求http协议版本。协议分为长连接http1.1和短连接http1.0
2,请求头
3,空行
4,请求主体:
get
方法没有请求主体内容
post
方法会有请求主体信息
服务端发出相应访问页面的请求信息(发出http响应报文)
1,起始行(响应行)
- HTTP协议版本信息
- 响应的状态码信息(请求成功状态码 200)
- 响应状态码说明信息
2,响应头部
3,空行
4,响应主体内容:一般为
html css js
等等代码信息
http版本号
HTTP1.0和1.1区别
长连接(Persistent Connection)
HTTP1.1 支持长连接和请求的流水线处理,在一个 TCP 连接上可以传送多个 HTTP 请求和响应,减少了建立和关闭连接的消耗和延迟,在 HTTP1.1 中默认开启长连接 keep-alive ,一定程 度上弥补了 HTTP1.0 每次请求都要创建连接的缺点。 HTTP1.0 需要使用 keep-alive 参数来告知 服务器端要建立一个长连接。
节约带宽
HTTP1.0中存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能。HTTP1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,客户端接收到100才开始把请求body发送到服务器;如果返回401,客户端就可以不用发送请求body了节约了带宽。
HOST域
在 HTTP1.0 中认为每台服务器都绑定一个唯一的 IP 地址,因此,请求消息中的 URL 并没有传递主机名 hostname , HTTP1.0 没有 host 域。随着虚拟主机技术的发展,在一台物理服务器上可 以存在多个虚拟主机( Multi-homed Web Servers ),并且它们共享一个 IP 地址。 HTTP1.1的请求消息和响应消息都支持 host 域,且请求消息中如果没有 host 域会报告一个错误( 400Bad Request )。
缓存处理
在 HTTP1.0 中主要使用 header 里的 If-Modified-Since,Expires 来做为缓存判断的标准,HTTP1.1 则引入了更多的缓存控制策略例如 Entity tag , If-Unmodified-Since, If-Match, If None-Match 等更多可供选择的缓存头来控制缓存策略。
错误通知的管理
在 HTTP1.1 中新增了 24 个错误状态响应码,如 409 ( Conflict )表示请求的资源与资源的当前状态发生冲突; 410 ( Gone )表示服务器上的某个资源被永久性的删除。
HTTP1.1和2.0区别
多路复用
HTTP2.0 使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量 比 HTTP1.1 大了好几个数量级。 HTTP1.1 也可以多建立几个 TCP 连接,来支持处理更多并发的 请求,但是创建 TCP 连接本身也是有开销的。
头部数据压缩
在 HTTP1.1 中, HTTP 请求和响应都是由状态行、请求 / 响应头部、消息主体三部分组成。一般 而言,消息主体都会经过 gzip 压缩,或者本身传输的就是压缩过后的二进制文件,但状态行 和头部却没有经过任何压缩,直接以纯文本传输。随着 Web 功能越来越复杂,每个页面产生的请求数也越来越多,导致消耗在头部的流量越来越多,尤其是每次都要传输 UserAgent ,Cookie 这类不会频繁变动的内容,完全是一种浪费。 HTTP1.1 不支持 header 数据的压缩, HTTP2.0 使用 HPACK 算法对 header 的数据进行压缩,这 样数据体积小了,在网络上传输就会更快。
服务器推送
服务端推送是一种在客户端请求之前发送数据的机制。网页使用了许多资源: HTML 、样式 表、脚本、图片等等。在 HTTP1.1 中这些资源每一个都必须明确地请求。这是一个很慢的过 程。浏览器从获取 HTML 开始,然后在它解析和评估页面的时候,增量地获取更多的资源。因为服务器必须等待浏览器做每一个请求,网络经常是空闲的和未充分使用的。为了改善延迟, HTTP2.0 引入了 server push ,它允许服务端推送资源给浏览器,在浏览器明 确地请求之前,免得客户端再次创建连接发送请求到服务器端获取。这样客户端可以直接从 本地加载这些资源,不用再通过网络