HTTP

作者: 李波小丑 | 来源:发表于2017-02-23 13:40 被阅读0次

IP

Internet Protocol 网络协议
负责源主机和目标主机之间的数据包传输

TCP

TCP为传输控制层协议,可靠
TCP通过三次握手来完成连接建立

  1. 客户端首先向服务端发送一个SYN包(同步序列号)和一个随机序列号A
  2. 服务端收到后会回复客户端一个SYN-ACK包和一个确认号A+1,同时再发送一个随机序列号B
  3. 客户端收到后会发送一个ACK包以及确认号B+1和A+1

UDP

user data protocol 用户数据报协议
UDP不可靠,侧重快速传输

http1.jpg

网络七层协议

  1. 应用层 HTTP
  2. 表示层
  3. 会话层
  4. 传输层 TCP UDP
  5. 网络层
  6. 数据链路层 交换机,网卡
  7. 物理层

HTTP

请求头

http3.jpg

响应头

http4.jpg

HTTP1.1 比 1.0 多了Host, PUT DELETE等request方法

HTTPS

http2.jpg

HTTP默认端口 80
HTTPS默认端口 443

HTTPS加密

http5.png
  1. 客户端发起HTTPS请求
  2. 服务端的配置
    采用HTTPS协议的服务器必须要有一套数字证书,自己可以制作,也可以向组织申请。区别就是自己办法的证书需要弹出提示页面,客户端验证通过才能继续访问。
    这套证书其实就是一堆公钥和私钥。可以理解为一个锁头和一把钥匙,只有你自己有这把钥匙,你可以把锁头给别人,别人可以利用这个锁把重要的东西锁起来,然后发给你,因为只有你有钥匙,所以只有你才能看到被这把锁锁起来的东西。
  3. 传送证书
    这个证书其实是公钥,包含了证书的颁发机构,过期时间
  4. 客户端解析证书
    这部分是由客户端的TLS来完成,首先会验证公钥是否有效,比如颁发机构,过期时间等。之后生成一个随机值,用该公钥证书对随机值进行加密。
  5. 传送加密信息
    主要是传送客户端生成的随机值,以后客户端和服务器端的通信就可以通过这个随机值来对数据进行对称加密
  6. 服务器端解析加密信息
    因为服务器有钥匙,所以可以获取客户端传过来的随机值。
  7. 传输加密后的信息
    服务器用客户端生成的随机值对内容进行对象加密然后传输
    8.客户端解析加密信息

SSL协议是通过非对称密钥机制来保证双方的身份认证,完成建立连接;在实际数据通信时通过对称密钥机制保障数据安全和传输速度

对称加密:需要对加密和解密使用相同的密钥和算法, DES
非对称加密:需要公开密钥和私有密钥,使用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密

服务器返回状态码

100 消息
200 成功
300 重定向 在requestConfig中设置setRedirectsEnable(false)来禁止重定向 301:永久重定向 302:暂时重定向
400 请求错误
500 服务器错误

HTTP协议是基于TCP连接的,是应用层协议,主要解决如何包装数据。socket是对TCP/IP协议的封装,不是协议而是接口

GET:请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接,空格转换为+,如果是中文,直接把字符串用BASE64加密

相关文章

网友评论

      本文标题:HTTP

      本文链接:https://www.haomeiwen.com/subject/bhcbwttx.html