计算机网络-TCP/UDP

性能优化为什么要减少HTTP请求次数

因为http是基于TCP的,每一次发起HTTP请求都需要建立TCP连接,进行三次握手,太消耗资源,虽然HTTP1.1允许持久连接,但服务器一次只处理一个请求,只有处理完成一个请求,才会进行下一个请求,容易造成堵塞。

一次完整的HTTP事件过程##

  1. 输入URL
  2. DSN域名解析
  3. 发起TCP3次握手
  4. 建立TCP连接后的发起HTTP请求
  5. 服务器响应HTTP请求,浏览器得到HTML代码
    6.浏览器解析HTML, 浏览器对页面进行渲染

TCP和UDP 的区别

TCP是面向连接的,通过三次握手保证连接的可靠性
UDP是无连接的,是一种不可靠的数据传输协议,数据发送前不与对方建立连接,也不发送确认信息
UDP报文的最大长度为512字节,而TCP则允许报文长度超过512字节。

域名解析时是TCP还是UDP

DNS在进行区域传输的时候时用TCP协议,其它时则使用UDP协议;
客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过TCP三次握手,这样DNS服务器负载更低,响应更快。
DNS的规范规定了2种类型的DNS服务器,一个叫主服务器,一个叫辅助DNS服务器。在一个区种主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。当一个辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息。这就叫做区传送(zone transfer)

HTTPS的工作原理

http://www.cnblogs.com/ttltry-air/archive/2012/08/20/2647898.html
HTTPS能够加密信息,一面敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全几倍较高的服务都将会采用HTTPS协议。
HTTPS其实由两部分组成:HTTP+SSL/TLS.,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的系你先传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密、解密、验证的,如下图

这里写图片描述
图中标识的数字解释如下:

  1. 客户端发起HTTPS请求,
    用户在浏览器里输入一个HTTPS网址,然后连接到server的443端口。

  2. 服务端的配置
    采用HTTPS协议的服务器必须要有一个套数字证书,可以自己制作,也可以向组织申请。
    区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任难道公司申请的证书则不会弹出提示页面(startss 有一年的免费服务)。这套证书其实就是一堆公钥和私钥。

  3. 传输证书
    这个证书其实就是一个公钥,包含很多信息,如证书的办法机构,过期时间等。

  4. 客户端解析证书
    这部分又TLS完成,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,就会弹出一个警告框,提示证书存在问题。如果证书没有问题,就生成一个随机值。然后用证书对该随机值进行加密。随机值用锁头锁起来,除非有钥匙,不然看不到被锁的内容。

  5. 传送加密信息
    传送证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密。

  6. 服务端解密信息
    服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法强,私钥够复杂,数据就够安全。

  7. 传输加密后的信息
    服务端用私钥加密后的信息,可以在客户端被还原。

  8. 客户端解密信息
    客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容。这个过程把第三方即使监听了数据,也束手无策。

SSL层的位置:介于应用层和TCP层之间,应用数据不再直接传递给传输层,而是传递给SSL层,SSL层对数据进行加密,并增加自己的SSL头。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值