zoukankan      html  css  js  c++  java
  • Http与Socket小谈

    http与socket是网络编程中最为重要的概念,不管是客户端还是服务端,都是最为重要的部分,以下简述两者的关系和区别(个人见解)。

    Http

    定义

    基于应用层的超文本传输协议。通常承载于TCP/IP协议之上,有时也承载于TLS或SSL协议层之上,即https。

    特点

    • 必须是客户端请求,服务端才能响应,无法由服务端自主发起。
    • 网络连接为短连接,在请求结束后,就会自动释放本次连接。

    优点

    • 基于应用层的接口,简单易用,非常容易上手,对开发者要求较低

    缺点

    • 传输速度有限,数据量较大
    • 对服务器性能要求较高
    • 数据传输过程中安全性有限

    适用范围

    • 需要快速开发的应用
    • 对数据实时交互性要求不太高的应用
    • 对数据安全性不是太高要求的应用
    • 对服务器性能较差的应用

    Socket

    定义

    基于TCP/IP的网络API,处于传输层,用于提供给程序员操作TCP/IP网络传输的应用程序接口。通常称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输。是应用层和传输层之间的桥梁。

    特点

    • 建立socket连接至少需要一对套接字(socket),一个运行在客户端,一个运行在服务端
    • 通常Socket连接是基于TCP连接的,因此属于长连接
    • Socket一旦建立连接,通信双方即可持续相互发送数据内容,直到双方连接断开

    优点

    • 传输数据可自定义,数据量很小
    • 数据传输时间段,性能高
    • 多用于客户端与服务端之间的数据实时交互
    • 可以使用加密手段,数据安全性很高

    缺点

    • 相对于http协议传输,开发量较大
    • 对开发人员的开发水平要求较高,增加开发量

    适用范围

    • 适用于对传输速度要求高的应用,如网络游戏
    • 适用于对数据安全性要求较高的应用中,如银行内部数据交互
    • 对产生流量巨大的应用
  • 相关阅读:
    Java操作XML文件
    数据结构之shell排序
    制作个人开发IDE
    ActiveMQ基本详解与总结
    ActiveMQ的作用总结(应用场景及优势)
    C# 封装miniblink 使用HTML/CSS/JS来构建.Net 应用程序界面和简易浏览器
    已使用.netframework,version=v4.6.1 而不是目标框架netcoreapp,version=v2.1 还原包,此包可能与项目不完全兼容
    RabbitMQ的六种工作模式
    RabbitMQ学习系列
    RabbitMQ基本概念和原理
  • 原文地址:https://www.cnblogs.com/ToBeTheOne/p/6017079.html
Copyright © 2011-2022 走看看