网络编程知识预备(4) —— SOCKET、TCP、HTTP之间的区别与联系

参考:网络编程知识预备(3) ——SOCKET、TCP、HTTP之间的区别与联系_行稳方能走远的博客-CSDN博客


SOCKET、TCP、HTTP之间的区别与联系

联系

两个计算机进行网络通讯时使用TCP协议就够了,双方就能收发数据,但是无法解析数据;

HTTP协议解决了浏览器和服务器之间通讯协议的数据格式解析

HTTP协议基于TCP协议,通过TCP协议传输数据;HTTP协议是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

Socket套接字是通信的基石,是程序员能够进行 TCP/IP 编程的最小单位。是支持TCP/IP协议的网络通信的基本操作单元当使用 TCP 协议进行连接时,该 Socket 连接就是一个TCP 连接

区别

HTTP是应用层的协议,更靠近用户端;TCP是传输层的协议;而socket是从传输层上抽象出来的一个抽象层,本质是接口

HTTP是短连接,Socket(基于TCP协议的)是长连接

HTTP连接服务端无法主动发消息,客户端发送的每次请求服务器都需要回送响应。Socket连接双方请求的发送先后限制


目录

一、 Socket

1、什么是socket

2、为什么需要socket

3、建立socket连接

二、HTTP(基于TCP)

1、HTTP的概念

2、HTTP连接的特点

连接请求:一次连接

连接请求:短连接(socket是长连接)

三、TCP/IP协议簇

四、HTTP、Socket、TCP的联系

1、SOCKET 是操作 TCP/IP 的编程接口

2、SOCKET与HTTP

长连接与短连接

保持数据的实时同步

3、TCP/IP和HTTP协议

五、HTTP、Socket、TCP的区别

Socket(套接字)

Socket长连接

什么时候用长连接,短连接

TCP连接和HTTP连接的区别

TCP连接与Socket连接的区别

HTTP连接与Socket连接的区别

六、常见问题

什么时候该用HTTP,什么时候该用socket ?

浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开?

一个TCP 连接可以发多少个 HTTP 请求?

一个 TCP 连接中 HTTP 请求发送可以一起发送么(比如一起发三个请求,再三个响应一起接收)?

为什么有时候刷新页面不需要重新建立 SSL 连接?


一、 Socket

1、什么是socket

套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元

        它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。(其实就是bind绑定)

2、为什么需要socket

        应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP 协议端口传输数据。

        为了区别不同的应用程序进程和连接,计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。

        应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

3、建立socket连接

        前面在学习socket网络编程的过程中,我们已经对这一个过程有了深刻的认识,由于本文更多了解的是概念性的东西,在这里不做socket编程的展开。

(1)建立Socket连接至少需要一对套接字(socket函数),其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。

(2)bind做网络通信必须的五种信息绑定。

(3)套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

二、HTTP(基于TCP)

1、HTTP的概念

        HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

2、HTTP连接的特点

连接请求:一次连接

        HTTP连接最显著的特点是客户端发送的每次请求服务器都需要回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

(1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
(2)在HTTP> 1.1中,则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。

连接请求:短连接(socket是长连接)

        由于HTTP在每次请求结束后服务端都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,客户端需要向服务器不断地发起连接请求

        若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。

        通常的做法是即使不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一保持连接的请求(心跳包),服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。

三、TCP/IP协议簇

        TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。

        注意:TCP/IP 协议不仅仅指的是 TCP 和 IP 两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在 TCP/IP 协议中 TCP协议 和 IP 协议最具代表性,所以被称为 TCP/IP 协议。

TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。

就像配置串口通信一样,通信双方要

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值