http是什么?

  1. 超文本传输协议
  2. 他是一个约定,一个标准,用于网站浏览器和服务器通讯的数据格式。

http包的结构是怎么样的

  1. 分为头(head)和体(body),用空行(\r\n\r\n)分割

  2. 请求头的格式

    GET /1.jpg HTTP/1.1
    host: baidu.com
    user-agent: xxxxxx
    
    
  3. 响应头格式

    http/1.1 200 ok
    Connection: keep-alive
    Content-Encoding: gzip
    Content-Type: text/html;charset=utf-8
    
    响应的内容
    
  4. 请求->响应

    1. 只能由浏览器主动请求服务端。

http和https

区别

  1. https是加密后传输的

  2. http是明文传输

  3. 为什么https加密传输后能保证安全

    • 服务器会把公钥(CA证书)先发送给浏览器,浏览器发送给服务器的数据都通过公钥加密后发送给服务器,由于公钥加密的数据只有私钥才能解密,所以中间就算有人拦截了数据,也无法查看和修改数据。
    • 漏洞:
      • 公钥也被别人拦截了
      • 有公钥就能随意查看数据,但是还无法修改。
  4. 中间人攻击原理图

https中间人攻击原理.png

  1. https是解决中间人攻击

    • 第三方服务器,保证域名和证书是相互绑定的,浏览器去这个服务器验证获得的证书是否是正确的,如果不正确表示被中间人攻击了。

cookie

  1. 浏览器用于存储临时数据的一种方式。
  2. 可以是服务器通过 Set-Cookie 头设置cookie信息到浏览器
  3. 可以通过js直接设置cookie

用途 - 一般用于用户登录,购物车信息 - 保存一些不是特别重要,不是特别敏感的临时数据

dns(域名系统)

  1. 维护域名和ip的关系表,提供网络查询

  2. 使用UDP协议

    • UDP是一个无连接的协议
    • TCP是一个有连接的协议(http是使用这个协议)
  3. 本地的hosts文件也维护了一个域名和ip的关系表

    • hosts文件和dns的区别
      • 优先查询hosts文件,如果没有,再去dns服务器查找
      • hosts只在本机生效