iOS开发笔记>> socket, http(post, get), TCP/ IP


1. socket 连接时, 可以指定使用的传输层协议是哪一个, socket 可以支持不同的传输层协议(TCP 或 UDP), 当使用 TCP 连接时, 该 socket 连接就是一个 TCP 连接. 


2. http 协议(即超文本传输协议)就好像是轿车, 提供了封装或者显示数据的具体形式, socket 是发动机, 提供了网络通信的能力. 且 http 链接最显著的特点是客户端发送的每次请求都需要服务器会送响应, 在请求结束后, 会主动释放连接. 从建立连接到关闭连接的过程称为"一次连接".


两个计算机之间的交流无非是两个端口之间的数据通信, 具体的数据会以什么样的形式展现, 是以不同的应用层协议来定义的, 如 HTTP, FTP... socket 是对端口通信开发的工具, 它要更底层一些. 


很多情况下, 需要服务器主动向客户端推送数据, 保持客户端与服务器数据实时与同步. 此时若双方建立的是 socket 连接, 服务器就可以直接将数据传送给客户端, 若双方建立的是 http 连接, 则服务器需要等到客户端发送一次请求后才能将数据传回给客户端, 因此, 客户端定时向服务器端发送连接请求, 不仅可以保持在线, 同时也是在"询问"服务器是否有新的数据, 如果有就将数据传给客户端. 


3. TCP/IP: IP 协议对应于网络层, TCP 协议对应于传输层, 而 http 协议对应于应用层. 平时说的最多的 socket 是什么呢, 实际上 socket 是对 TCP/IP 协议的封装. socket本身不是一个协议, 而是一个 API, 通过 socket 我们才能使用TCP/IP 协议. 


4. get 和 post: http 协议的两种方法, 这两种方法有本质的区别, get 只有一个流, 参数附在 URL 后, 大小个数有严格限制且只能是字符串. post 的参数是通过另外的流传递的, 不通过 URL, 所以可以很大, 也可以传递二进制数据, 如文件的上传. 


5. TCP 和 UDP 的区别:

 TCP 是面向连接的, 虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性, 但 TCP 的三次握手在最低限度上(实际也很大程度上保证了)保证了连接的可靠性, 而 UDP 不是面向连接的, UDP 传送数据前并不与对方建立连接, 对连接的数据也不发送确认信号, 发送端不知道数据是否会正确接收, 当然也不用重发, 所以说 UDP 是无连接的, 不可靠的一种数据传输协议. 

    

也正由于上面所说的特点, 使得 UDP 的开销更小数据传输率更高, 因为不必进行收发数据的确认, 所以 UDP 的实时性更好. 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值