安全的随想>>同源策略

URL

URL是互联网世界的门牌号,URL请求使我们找到唯一的资源
url的格式是< scheme >://< netloc >/< path> ?< query> # < fragment>
举个例子:http://www.sweetie.cn/path1/f.php?id=1&type=love#new
注意,此处< path>是path1/f.php,< query>是键值对id=1&type=love
对于http basic认证的URL请求,可以以http://username:pw@www.sweetie.cn/的方式,把用户名的密码放在< netloc>之前
URL有三种编码方式 escape,encodeURI,encodeURIComponnent
对应解码方式 unescape,decodeURI,decodeURIComponent

HTTP

URL的请求协议基本都是http,它是一种无状态的请求响应,也就是说,每次请求响应之后连接都会立即断开,或者延时断开,
既然是无状态的,服务器如何知道你就是上次连接的那一个家伙呢?cookies派上了用场.第一次响应时设置了cookies,随后的每次响应都会发送出去.(对,我就是那块小饼干)
再来看看请求和响应,它们都分头和体,以空行隔开.

对请求来说,get不用体,post表单的键值对出现在体中.而响应体则是在浏览器中看到的内容

举例子说明吧
请求头:
GET http://avatar.csdnimg.cn/ HTTP/2.0 请求方法,http版本
Host: avatar.csdnimg.cn 请求的主机
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0 表明身份的User-Agent,包括浏览器,操作系统,浏览器内核和版本号等信息(我们写爬虫时也会有这样的体验,要用User-Agent假装自己用浏览器访问,就好像为自己办理一个假身份一样)
Accept: image/webp,/
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Referer: https://www.csdn.net/ 从这个页面点击过来
Connection: keep-alive
Cache-Control: max-age=0
TE: Trailers

响应头:
HTTP/2.0 200 OK 状态码,状态描述
server: Tengine 服务端信息(有的可能包含web容器,操作系统,服务端语言及版本)
content-type: image/jpeg 响应资源
content-length: 3564 响应体长度
(省略ing)
每个set-cookie都set一个cookie(key=value)然后是:
expires:过期时间,如果是过去,cookie要被删除
path:相对路径,只有该路径下的资源可以访问这个cookie
domain:有权限设置为更高一级的域名
HttpOnly:标志,如果有,说明cookie只存在于http层面,不能被客户端脚本读取
Secure:标志,如果有,说明cookie只通过https协议传输

同源策略

internet域运行在浏览器上,从而限制了直接进行本地域的读写,这样就把web和本地层面分隔开来
而同源策略是web层面的分隔,它规定:不同域的客户端脚本在没有明确授权的情况下,不能读写对方资源
同域要求两个站点同协议,同域名,同端口
注意:顶级域和www子域域名不同比如http://baidu.com和http://www.baidu.com域名不同
而http://www.baidu.com:8080由于和默认的80端口不同,和http://www.baidu.com不同域
但是多了一个目录还是同域的,因为它们同协议,同域名,同端口
所以说,通常所说的同域就是指同源
而资源是指web客户端包括http消息头,整个DOM树,浏览器存储(cookies,flash cookies,localStorage…)
同源策略台重要了,如果没有同源策略,在你登陆甲站点并访问乙站点时,乙站点的js可以跨域读取你在甲站点的数据,同源策略限制了这些弟弟行为,它告诉这些弟弟们,只有甲站点的http响应头明确给了乙站点授权,乙站点才能通过AJAX对甲站点的数据读写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值