• socket http区别


    HTTP协议:简单对象访问协议,对应于应用层 ,HTTP协议是基于TCP连接的

    tcp协议: 对应于传输层

    ip协议: 对应于网络层

     
    TCP/IP是传输层协议,主要解决数据如何在网络中传输;而HTTP是应用层协议,主要解决如何包装数据。

    Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。

     

    http连接:http连接就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响应后连接即会断掉;

    即HttpResponse result = httpClient.send(),收到返回值后,会自动断开socket,TCP连接。

     

    socket连接:socket连接就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉;但是由于各种环境因素可能会是连接断开,比如说:服务器端或客户端主机down了,网络故障,或者两者之间长时间没有数据传输,网络防火墙可能会断开该连接以释放网络资源。所以当一个socket连接中没有数据的传输,那么为了维持连接需要发送心跳消息~~具体心跳消息格式是开发者自己定义的。

     

    思考一下:客户端一次发很多消息给服务端,那么Server是怎么知道client的一次消息有没有发送完了?

    分析:首先,Server端根本不知道Client给它发什么,即不可能从Server端来处理。

    两种思路:

    1、TCP通信中,每次客户端发送完数据,就发个FIN标志;

    2、HTTP协议中,有协议头,里面有length等信息,SERVER端可以根据这些信息来判断是否收完了数据!

     

     

     

  • 相关阅读:
    122. Best Time to Buy and Sell Stock II
    121. Best Time to Buy and Sell Stock
    72. Edit Distance
    583. Delete Operation for Two Strings
    582. Kill Process
    indexDB基本用法
    浏览器的渲染原理
    js实现txt/excel文件下载
    git 常用命令
    nginx进入 配置目录时
  • 原文地址:https://www.cnblogs.com/wyqfighting/p/3009545.html
Copyright © 2020-2023  润新知