线程与进程,http、https(post、get),socket(tcp、udp)的拆包和粘包,protocol buffer、大头小头简述

一、tcp和udp区别?

三次握手安全:tcp建立连接(三次握手),安全可靠(有序,无差错、无丢失、无重复);

建立连接:udp通信前不需建立连接,不可靠传输(视频、音频通话);

分组开销:TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组;UDP是面向数据报的传输,没有分组开销。

控制:TCP提供拥塞控制和流量控制机制;UDP不提供;

总结:tcp安全、面向字节流传输有分组开销、有流量和拥塞控制机制;

 

二、post和get?

长度:post请求长度无限制,get有限制;

参数位置:post参数放在body,get请求参数放在url(参数暴露);

参数限制:GET请求参数只能是ASCII码(所以中文需要URL编码),而POST请求传参没有这个限制;

实质相同点:其实,GET和POST本质上两者没有任何区别。他们都是HTTP协议中的请求方法。底层实现都是基于TCP/IP协议。

 

三、线程和进程;

任务调度:线程是CPU任务调度的基本单位;

资源分配:进程是系统资源分配的基本单位,多个线程共有进程资源;

 

四、http与https

1、ca:https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、ssl(明文与加密):http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、端口80与443:http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、状态:http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

https://www.cnblogs.com/wqhwe/p/5407468.html

 

五、http与socket区别:分别是短连接,和长连接;

 

六、socket的拆包和分包

原因:发送端优化算法,或者接收端延迟接收;

方案:添加包头,通过包头数据长度信息读取数据;

(完整的数据包 = 服务号(id) + 数据包长度(length) + 数据)

https://www.jianshu.com/p/9ea0f0c84990

 

七、结构数据序列化工具:protocol buffer(协议缓冲区,独立的数据交换格式)对比json、xml

1 二进制流:序列化后,数据是二进制流而不是字符串:

2 协议文件:序列化需要事先定义数据格式(.proto 协议文件),反序列化(还原)需要预定义好的数据格式;

3 传输大量数据时,更小更快;使用维护更简单;且跨平台、跨语音;

备注:ios开发 : pod protobuf

https://blog.csdn.net/mzpmzk/article/details/80824839

 

八、大头(socket传输时,低字节在高地址)与小头(intel的cpu,低字节在低地址)

https://blog.csdn.net/m0_37690319/article/details/80542259

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值