热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端复习网络(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连接就这样关闭了!


推荐阅读
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  •   1、确认自己的线路是否连接正确腾达a9设置。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
author-avatar
pang1995_313
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有