您的位置:首页 > 理论基础 > 计算机网络

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

2016-08-21 23:14 295 查看
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 的实时性更好. 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  socket udp tcp ios ios开发