前端复习-网络(4-同源策略-协议)

这篇博客基本上是一段纯文字内容,写的时候我的本意是加深印象,但是越写越头疼,以后我会想办法将其再提炼一下。

浏览器有一个很重要的概念——同源策略(Same-Origin Policy)。所谓同源是指,域名协议端口相同。不同源的客户端脚本(javascript、ActionScript)在没明确授权的情况下,不能读写对方的资源。

简单的来说,浏览器不允许包含在腾讯页面的脚本访问阿里巴巴页面的数据资源,会受到同源策略的限制


url(资源定位器)的构成
协议://域名(端口号、参数、查询等)

http://zhidao.baidu.com

协议:http / https (https代表着经过了安全处理)

域名: zhidao.baidu.com

端口: 80/ 90 / 3000

这里的同源指的是:同协议,同域名和同端口

例如:这里写图片描述
这里面只有第一个与例子同源。

域名是倒着解析的

.com 顶级域名
baidu.com (一)二级域名
zhidao.baidu.com (二)三级域名
www 二级域名前缀 表示万维网维护的
www.baidu.com 属于特殊的三级域名

zhidao.baidu.com 属于 百度自己维护的网络地址

域名的划分

com org net 属于顶级域名,是在全世界范围内解析的,cn hk 是在一个地区解析的,
cn 中国
.com (商业机构);
.net(从事互联网服务的机构);
.org (非赢利性组织);
.com.cn (国内商业机构);
.net.cn (国内互联网机构);
.org.cn (国内非赢利性组织);

dns 先根据顶级域名判断网络范围在根据域名查找主机ip地址

前缀就不管了,理论上www开头相当于占位用的 在国外一般不写www 国内风气就是写www

www拓展

最开始,Internet提供的主要服务有万维网(WWW)、文件传输(FTP)、电子邮件(E-mail)、远程登录(Telnet)等。也就是说,那个时候的www(World Wide Web)是标识这是一个需要你用浏览器来访问的网页服务,而不是需要你用telnet访问的bbs,或者ftp工具访问的文件传输服务。所以那个时候,网站主页的域名前面要用www。

baidu有多个服务区为他服务。不同的子域名对应处理不同服务的服务器现在,把任务分配到多台服务器,不需要通过子域名来区分了。http://goole.com一个地址背后有多台服务器支持运作,www只是尊重用户习惯,方便用户看。国外其实已经不用写www了。

IP

如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有多个

浏览网页服务默认的端口号都是80,因此只需输入网址即可,不用输入“:80


当你在浏览器里输入一个url发生了什么

简单归纳:(画图)

1.浏览器通过DNS域名解析到服务IP(ping www.baidu.com)

2.客户端(浏览器)通过TCP协议建立到服务器的TCP连接 (三次握手)

3.客户端(浏览器)向web服务器端(HTTP服务器)发送HTTP协议包,请求服务器里的资源文档 (telnet 模拟)

4.服务器向客户端发送HTTP协议应答包

5.客户端和服务器断开(四次挥手),客户端开始解释处理HTML文档

这里写图片描述

每条内容对应的简单解释

什么是三次握手?

三次握手

1.先Client端发送连接、发送一个请求包(SYN)请求报文。

2.Server端接受连接后回复ACK报文(应答包ACK),并为这次连接分配资源。

3.Client端接收到ACK报文后也向Server端发送ACK报文,并分配资源,这样TCP连接就建立了。

TCP(要求更高)、UDP

这里写图片描述

什么是四次挥手

1.Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说”我Client端没有数据要发给你了”,但是如果你还有数据没有发送完成,则不必急着关闭(Socket),可以继续发送数据。

2.server发送ACK,”告诉Client端,你的请求我收到了,但是我还没准备好,请继续等我的消息”。

wait:这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。

3.当Server端确定数据已发送完成,则向Client端发送FIN报文,”告诉Client端,好了,我这边数据发完了,准备好关闭连接了”。

4.Client端收到FIN报文后,”就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,”就知道可以断开连接了”。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!

猜你喜欢

转载自blog.csdn.net/jbj6568839z/article/details/81415777
今日推荐