web概述01

互联网简介

  • 互联网是世界上最大的计算机网络,互联网被称为网络的网络
  • 万维网是互联网中的一个子网
  • WWW包含分散在世界范围内的众多Web 服务器(World Wide Web)

了解WEB

web即全球广域网World Wide Web,也称万维网,是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构
web是一种交流方式
web概述01_第1张图片

WEB工作原理

web概述01_第2张图片

将编写好的文件放在服务器上,供其他人访问

WEB服务器

  • WEB服务器就是一台连接到互联网的计算机,等待处理用户的各种请求(浏览网页、看电影、听音
    乐等)
  • WEB服务器处理浏览器发送来的请求,找到对应的资源后再返回给浏览器

WEB浏览器

浏览器向服务器发送请求,然后接收WEB服务器返回回来的数据,并显示在浏览器上

用户从浏览器获得资源

web概述01_第3张图片

利用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应该向哪里去查找。
    web概述01_第4张图片

请记住查询顺序:

  • HOSTS表–> 本地DNS -->上层DNS(包括根DNS)

网站的基本特征

网站就是一个或多个网页的集合。从广义上讲,网站就是当网页发布到Internet上以后,能通过浏览器在Internet上访问的页面
按照网站处理的业务不同,将网站可以分为:政府部门网站、电子商务网站、企业信息网站、信息资源网站、信息导航网站

  • 域名网站标志
  • 数量众多的网页
  • 网页的风格统一
  • 便捷的导航系统
  • 分层的栏目组织
  • 切合主题的内容
  • 用户能与网站进行双向交流的栏目
  • 搜索信息的功能
  • 用户指南和网站动态信息

Web网站开发流程

从制作的角度,建立一个网站可分为十个阶段,每一个阶段都有不同的目标和要求

  • 计划阶段
  • 初步建设阶段
  • 连接阶段
  • 交互阶段
  • 数据库阶段
  • 对外阶段
  • 商业阶段
  • 应用阶段
  • 资本运营阶段
  • 更新阶段

客户端发出访问网站相应页面请求

建立连接后,发送请求报文,想看什么数据。 输入www.baidu.com时,默认请求的是index.html首页文件

  • 请求行:
    • 请求的方法(get post)
    • 请求的数据信息(默认请求index.html首页文件)
    • 请求http协议版本。协议分为长连接http1.1和短连接http1.0
  • 请求头
  • 空行
  • 响应主体内容:一般为html css js 等等代码信息

http版本号

HTTP/1.0即1996年版本发布

  • 为了提高系统的效率,http1.0协议规定浏览器与* 服务器只保持短暂连接,请求结束就断开连接
  • 这虽然减少了空连接的资源占用,但是增加了连接次数,连接的复用性降低,每次有新的请求就要
    重新建立一次连接
  • TCP连接的建立和断开需要三次握手、四次挥手,是一个很耗费时间的过程,每个连接又只能解决一次请求的通信,所以效率十分低下。
    HTTP/1.1即1999年诞生
  • 在http1.0基础上默认开启了keepalive (长链接),客户端和服务器之间建立的连接可以复用,默认请求结束后保持连接一段时间,在这一段时间,对方都没有新的请求,就可以主动断开连接,或者客户端在最后一个请求时,主动告诉服务端要断开连接。大大节省了TCP连接频繁建立和断开的
    开销
  • 与http1.0相比,增加了管道机制,即在同一个 TCP连接中,客户端可以同时发送多个请求,但是
    服务端还是按序响应,并没有完全解决“队头阻塞”,依然是串行(客户端在收到前边请求的响应
    前,后边的请求都要堵塞等待响应,客户端收到响应也不递送)
  • 在http1.0的基础上,还添加了Host字段,这样就可以请求同一服务器的不同站点;增加了缓存机
    制、扩展了错误状态码、请求范围引入了range域.。
    HTTP/2.0即1999年的首个更新
  • http1.1采用了长连接和管道技术,大大提高了效率,但是服务端还是按序响应,效率还是十分低
  • 为了解决1.1中存在的效率问题,http2.0采用了多路复用,客户端和浏览器都可以同时发送多个请
    求或响应,并且不用按照顺序一一对应,这是因为http2进行了二进制分帧(应用层和传输层之间
    的二进制分帧层),将传输信息分为更小的多个不同类型的帧,并进行标记,确保请求和响应的有
    序重组
  • 相比http1.1,还做了header压缩,和服务端推送(预先把一些热点等推送到缓存)

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域会报告一个错误(400
Bad Request)。

  • 缓存处理

在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,
HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, IfNone-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,它允许服务端推送资源给浏览器,在浏览器明
确地请求之前,免得客户端再次创建连接发送请求到服务器端获取。这样客户端可以直接从
本地加载这些资源,不用再通过网络。

你可能感兴趣的:(前端,前端,服务器,网络)