面试-----Socket 和Http Tcp 区别

之前就有朋友问过我这个的问题,面试的时候怎么回答面试官的这个问题;

哈哈哈,事实上我不知道,但是前几天又有人问我,

程序员的尊严不允许我哑口无言,所以总结一下.  

因为是讲给面试官的,所以精简是必须的,要想了解底层原理建议看看对应的书籍.

所以我百度+谷歌整理一下,有啥要补充的大家 留言吧,

先谢啦!!!

一,首先知道他们都是是什么

Socket (套接字):

     网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;

TCP:

    TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。

Http:

   HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准

二  现在来看看http,socket,tcp区别 

    1.HTTP协议是建立在TCP协议之上的一种应用。

    2.TCP连接一旦建立,在通信双方中的任何一方主动关闭连 接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求

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

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

    5.创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。

    6.TCP是传输层,而http是应用层

    7.TCP是底层通讯协议,定义的是数据传输和连接方式的规范

    8.HTTP是应用层协议,定义的是传输数据的内容的规范

(有这些就差不多了,挑一些 高大上的东西讲给面试官听,基本都可以 )

 

 

 

这篇文章里的内容借鉴了https://www.cnblogs.com/baizhanshi/p/8482612.html大神的作品

 

 

http socket tcp 是指通过socket建立TCP连接进行网络通信的一种方式。下面是对该面试题的回答。 TCP(传输控制协议)是一种面向连接的协议,它提供了可靠的、字节流形式的数据传输。HTTP(超文本传输协议)是一种应用层协议,它基于TCP协议,用于在Web上进行通信。 Socket是一种抽象层,它在应用层与传输层之间提供了一个接口。通过socket,应用程序可以通过TCP协议与其他计算机进行通信。 首先,HTTP是构建于TCP协议之上的,它使用TCP协议来实现可靠的数据传输。当浏览器发送一个HTTP请求时,它会通过TCP协议与服务器建立一个socket连接。然后,浏览器通过TCP连接向服务器发送HTTP请求报文。服务器收到请求报文后,会通过TCP连接向浏览器发送HTTP响应报文。最后,浏览器通过TCP连接接收响应报文并显示在界面上。 在这个过程中,socket被用于建立和维护TCP连接。通过socket,应用程序可以通过TCP协议进行数据传输。通常,一个socket连接包括服务器的IP地址和端口号,以及客户端的IP地址和端口号。 总结来说,通过socket建立的TCP连接是为了实现HTTP协议的可靠数据传输。在Web上,大部分应用都是基于HTTP协议的,因此socketTCP在Web开发中扮演着非常重要的角色。理解socketTCPHTTP之间的关系,对于进行网络编程和解决网络通信问题非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值