http是什么?
- 超文本传输协议
- 他是一个约定,一个标准,用于网站浏览器和服务器通讯的数据格式。
http包的结构是怎么样的
-
分为头(head)和体(body),用空行(
\r\n\r\n
)分割 -
请求头的格式
GET /1.jpg HTTP/1.1 host: baidu.com user-agent: xxxxxx
-
响应头格式
http/1.1 200 ok Connection: keep-alive Content-Encoding: gzip Content-Type: text/html;charset=utf-8 响应的内容
-
请求->响应
- 只能由浏览器主动请求服务端。
http和https
区别
-
https是加密后传输的
-
http是明文传输
-
为什么https加密传输后能保证安全
- 服务器会把公钥(CA证书)先发送给浏览器,浏览器发送给服务器的数据都通过公钥加密后发送给服务器,由于公钥加密的数据只有私钥才能解密,所以中间就算有人拦截了数据,也无法查看和修改数据。
- 漏洞:
- 公钥也被别人拦截了
- 有公钥就能随意查看数据,但是还无法修改。
-
中间人攻击原理图
-
https是解决中间人攻击
- 第三方服务器,保证域名和证书是相互绑定的,浏览器去这个服务器验证获得的证书是否是正确的,如果不正确表示被中间人攻击了。
cookie
- 浏览器用于存储临时数据的一种方式。
- 可以是服务器通过 Set-Cookie 头设置cookie信息到浏览器
- 可以通过js直接设置cookie
用途 - 一般用于用户登录,购物车信息 - 保存一些不是特别重要,不是特别敏感的临时数据
dns(域名系统)
-
维护域名和ip的关系表,提供网络查询
-
使用UDP协议
- UDP是一个无连接的协议
- TCP是一个有连接的协议(http是使用这个协议)
-
本地的hosts文件也维护了一个域名和ip的关系表
- hosts文件和dns的区别
- 优先查询hosts文件,如果没有,再去dns服务器查找
- hosts只在本机生效
- hosts文件和dns的区别