
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
web前端编程开发是目前大多数人转行互联网行业的时候都会去选择学习的一个技术方向,今天我们就通过案例分析来简单了解一下,web前端编程需要学习哪些知识。
一、HTTP请求由三部分组成
①请求行,请求方法字段、URL字段、HTTP协议版本(例如:GET/index.htmlHTTP/1.1)
②请求头,key-value形式(User-Agent:产生请求的浏览器类型,Accept:客户端可识别的内容类型列表,Host:主机地址)
③请求数据,POST请求中key-value形式发送。
二、HTTP版本更新
HTTP协议有HTTP/1.0版本和HTTP/1.1版本。HTTP1.1默认保持长连接(当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接要客户端和服务端都支持长连接。)数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据。
在HTTP/1.0中,默认使用的是短连接(浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接)。也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。从HTTP/1.1起,默认使用的是长连接,用以保持连接特性。
HTTP1.0
短连接:每次发送请求都要重新建立tcp请求,即三次握手,非常浪费性能
无host头域,也就是http请求头里的host,
不允许断点续传,而且不能只传输对象的一部分,要求传输整个对象
HTTP2.0
1.头部压缩,双方各自维护一个header的索引表,使得不需要直接发送值,通过发送key缩减头部大小
2.多路复用,使用多个stream,每个stream又分帧传输,使得一个tcp连接能够处理多个http请求
3.可以使用服务端推送
HTTP3.0
基于google的QUIC协议,而quic协议是使用udp实现的
减少了tcp三次握手时间,以及tls握手时间
解决了http2.0中前一个stream丢包导致后一个stream被阻塞的问题
优化了重传策略,重传包和原包的编号不同,降低后续重传计算的消耗
连接迁移,不再用tcp四元组确定一个连接,而是用一个64位随机数来确定这个连接
更合适的流量控制
三、HTTPS原理
在学习HTTPS原理之前我们先学习两个计算机网络中加密的概念。
对称加密:通信双方都使用同一个秘钥进行加密和解密。无法解决次把秘钥发送给对方时,很容易被截获的问题。
非对称加密:公钥和私钥组成一个密钥对,用私钥加密的数据,只有对应的公钥才能解密,用公钥加密的数据,只有对应的私钥才能解密。通信双方的手里都有一套自己的密钥对,通信之前双方会先把自己的公钥都发送给对方,然后对方拿这个公钥来加密要发送的数据,接收方用自己的私钥对其解密。问题是速度慢。
将HTTP变成HTTPS时,这时候需要一个证书颁发机构(CA),证书中包括签发者、证书用途、使用者的公钥私钥和Hash算法、证书到期时间等。另外使用数字签名这一技术:使用CA自带的Hash算法对证书内容进行Hash得到一个摘要(指纹),再用CA的私钥加密,生成数字签名。接收者收到证书时,使用同样的Hash算法再次生成消息摘要,然后用CA的公钥对数字签名解密,将它和消息摘要对比,就知道有没有被篡改。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。