1.为什么需要应用层
应用层提供使用tcp,udp使用的方式
协议就是制定的规则
2.域名服务器概述
域名是唯一的
新增域名,大家都要修改这个文本文件,所以要进行集中管理这个文本文件,而不是使用本地的hosts文件
hosts文件在Windows系统和Linux系统中相应的路径可以找到
该文件能帮助我们快速定位做出域名解析
从浏览器输入www.baidu.com时,浏览器先去本地的hosts文件当中找有没有www.baidu,com(域名),有的话直接跳到该ip地址,就不需要先访问本地的域名解析服务器,再去访问远程(这样就提升了效率)
像www.baidu.com其实是有层次的
域名系统DNS,是一个名称空间,具备分布式的能力,域名系统不能挂,所以用分布式的方式来部署
从浏览器输入www.baidu.com时,会先来到DNS这个域名解析服务器,域名服务器会将输入的内容转换成具体的百度服务器ip地址,对方的浏览器ip地址是有ip的。
对于域名的划分:
其中,.cn表示中国,.us美国,.uk英国 .edu教育部门,.gov表示政府部门
例如:
mail邮件服务 bbs论坛服务
四级域名为某一个功能模块或者是组织架构,前面的是隶属于某一个机构。
权限域名服务器用来做真正的解析(将www转换成ip地址)
域名不是以域为单位,而是以区为单位
默认是都在一起的,若常用,独立划分出来成为一个单独的区,是一个独立的域名服务器,做成独立的一台服务器。
3. 域名解析过程
域名服务器分为四种,是根据等级来划分的
对于顶级的域名服务器
一个区就有一个权限域名服务器,主要的作用就是用来解析的。
A会将数据同步给B主机,若在这个过程中,若有DNS的请求发送给B,这样的请求允许发生吗?
若允许发生,这样的数据是不准确的,为了保证数据的一致性,所以不允许发生。
对于主机而言,在做递归查询,请别人帮忙,对本地域名服务器,在做迭代查询,主动完成
冷门数据没有被访问,就删除。热点数据:经常被访问,只有热点数据一直保存在缓存里面。
4.万维网要解决的问题
网站有多个页面所构成,或是说有很多多媒体所组成,集合在一起,成为一个站点,资源可以相互跳转---使用超链接来实现
超文本:不止包含文本信息,还能包含除了文本以外的其他信息(图文声像)
最重要的特点就是:跳转
从浏览器向服务器请求超文本资源(文字 图片声音等等)资源会从服务器发送到浏览器
浏览器的身份就是一个客户端
能成功返回:前提是要能找到资源
tomcat(用javaweb开发) nginx(静态资源服务器 服务器性能较好 响应速度快)
URL(统一资源定位符)--标识互联网文档 相当于文件的身份证号
UDP发送对方就不会响应
事实上服务器上有很多html页面
5.URL的概念
网页上面输入的网址,其实就是URL
其中:80端口是默认的端口,可以不写 URL中http没有时默认会自动带上 www也是不写也没有关系 其中,index.html是主页,当没有其他地址,默认展示这个
6.http协议
当请求和响应完整的结束,TCP连接就会被释放
点击--跳转--(完成的是超链接的功能)--相当于浏览器又向服务器发起了一次请求最终获得
7.cookie的实现原理
无状态:就是没有记录上一次请求留下的数据
cookie是客户端的会话技术 会话就是客户端和服务器的一次交互
客户端和服务器的交互产的数据可以保存下来
cookie(保存在客户端的本地) session(保存在服务器的本地)
若是使用了cookie技术,客户端就需要开辟一段空间来保存这一次交互所产生的数据
若是使用了session技术,服务器就需要开辟一段空间来保存这一次交互所产生的数据
使用cookie的流程:
转账操作:同时成功或者同时失败
这些动作是不能再被分割的整体
一次的请求和响应是一个RTT
客户和服务器要去发送请求,整个过程需要三次握手:
第一次握手:客户端发送请求给服务器
第二次握手:服务器返回响应
第三次握手:客户端将请求的报文带给服务器
最后服务器将客户端需要的资源传回客户端
所需时间:三次握手+最后传输文档所需的时间
8.持续连接
版本为1.1的http就使用了持续连接
但是会存在一些问题:
流水线的出现,大大提升了利用率
解决方法:
当客户端收到12395的时候,就相当于服务器告诉浏览器响应结束了
9.代理服务器
很好的提高性能的方式:代理服务器
代理的意思就是帮助做一些事情,提供代理服务
代理服务器:代表你来发送http请求(相当于房屋中介,你只需提出要求)
代理服务器:又称万维网的高速缓存
流量强度<1--说明性能是不错的,流量在局域网里面是能够被承载下来的
若没有使用代理服务器,就会有一定的弊端:
链路时延较长,如何解决?--
使用代理服务器,所有的请求都会发送给代理服务器,由代理服务器去代理这次请求。
例如A向服务器发起请求,A会先将需求告诉代理服务器,然后由代理服务器去发起请求
代理服务器的好处:就是一个高速缓存(响应的资源会放到代理服务器内部)
若是B也想访问那个服务器,直接先访问代理服务器,这样就减少了链路上的流量
但是在这个过程中,代理服务器也会访问服务器,但是会带一个最后修改时间,如果和服务器的时间相同,服务器会返回一个响应304(不会给你资源了,直接使用你缓存的就可以)
若服务器的最后修改时间是最新的,这时,服务器就会返回最真实的页面给客户端,此时,状态码就成为200.这样就减少了链路上的浏览压力。
服务器中存储最后一次修改时间
10.http协议的请求报文
请求首部--请求头(里面放的是键值对的信息)--一个名称对应一个值(表示一个属性和属性值)
报文:由请求行,请求头,请求体组成
post请求:新的资源的建立,已有资源的修改