Socket 和 HTTP 是在网络通信的应用中经常提到呢,那么这两位大侠到底是什么呢?
其实Socket 和 HTTP 没有放在一起说的道理,一个是基于传输层开发的接口,一个是应用层协议。
Socket 是基于网络模型的传输层TCP协议开发出来的接口,Socket运输员只负责把最基本的数据流传送到目的地(主机ip地址和Port端口号),至于你的数据是用来做什么的Socket不管。
HTTP 是应用层的协议,由于在传输层的传送员(Socket或者其他协议如UDP的接口)只是负责传送基本的数据,而对方如果想要恰当的使用这些数据,通信数据的双方必须事先说明,数据的第一个字段是用来做什么的,第二个字段是用来做什么的等等。这个事先说明的动作就是协议,其实你也可以管这个协议叫做HTTP,可惜了,已经名花有主了。
用一个生活中的例子来理解应用层协议:
将整个计算机网络通信比拟成邮局系统。
应用层协议就像邮局系统开设的几个服务,邮件(HTTP),快递EMS(Telnet),包裹(FTP)等等。
分享到:
相关推荐
在计算机网络中,Socket是应用程序与网络通信之间的一个接口,它提供了一种方式来建立网络连接并进行数据交换。在Linux操作系统中,Socket编程是一种非常重要的技术,它允许开发者创建客户端或服务器程序,实现不同...
Socket API是一种用于进程间通信的编程接口,它提供了一种底层抽象机制,使得开发人员可以通过统一的接口来实现不同计算机之间的数据交换。理解Socket的工作原理对于开发网络应用至关重要。 - **Socket编程模型**:...
Socket在计算机网络中是应用层与传输层之间的一个抽象接口,它允许编程人员通过网络发送和接收数据。Socket基于TCP/IP协议,提供了进程间的网络通信能力。在JSP网站开发中,Socket常用于构建实时聊天系统、在线游戏...
Socket编程基于套接字(Socket)的概念,是一种网络通信的抽象,通过提供一套标准的API函数,让程序员可以轻松地处理网络上的数据传输。Linux系统提供了一套丰富的Socket API来实现网络通信功能,这包括创建Socket、...
Socket是一种抽象的数据传输机制,它允许不同计算机间的进程相互通信。在Unix系统中,Socket被视为一种特殊的文件描述符,通过Socket接口,程序员可以构建基于TCP/IP协议的网络应用。Socket接口提供了诸如创建Socket...
Socket编程是网络编程的基础,它提供了在不同计算机间进行通信的接口。在C语言中,Socket编程主要涉及到TCP/IP协议族,允许开发者创建和管理网络连接,实现数据的发送和接收。 1. **什么是Socket** Socket,又称为...
Socket编程是计算机网络通信中的重要概念,它允许应用程序通过网络进行数据传输。在这个场景中,我们看到三种不同的编程语言——C#、C++和Delphi,都用来实现Socket客户端和服务器端的通信。这些语言各自有其优势和...
- **创建型模式**:如抽象工厂、建造者、工厂方法、原型、单例。 - **结构性模式**:如适配器、桥接、组合、装饰、外观、代理、享元。 - **行为模式**:如责任链、命令、解释器、迭代、中介者、备忘录、观察者、...
#### 一、语言相关 **1、基础(Basic)** - **变量与基本类型** - **语言内置类型**:了解整型(int, long, unsigned等)、浮点型(float, double)、布尔型(bool)、字符型(char)等基本数据类型的使用场景与特性。 -...
继承是一种类之间的关系,其中一个类(派生类)可以从另一个类(基类)继承属性和行为。 **8. 堆栈溢出** 堆栈溢出通常是由于递归调用过深或局部变量占用过多内存导致的。 **9. 重载操作符** 重载操作符允许...
#### 计算机网络 1. **网络层次结构** - **OSI七层模型**:理解物理层、数据链路层、网络层、传输层、会话层、表示层和应用层的功能。 - **TCP/IP模型**:掌握应用层、传输层、网络层和链路层的作用。 2. **TCP/...
在计算机网络中,TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的可靠的传输层协议。它是Internet协议簇(TCP/IP)中的核心协议之一,主要用于数据传输。下面是基于TCP网络编程实现代码的知识...
SOCK类在IT行业中通常指的是Socket编程中的抽象概念,它是一种用于网络通信的接口,允许应用程序通过网络发送和接收数据。Socket编程是TCP/IP协议族的一部分,提供了进程间通信(IPC)的能力,使得运行在不同计算机...
C++作为一种强大的编程语言,是学习网络编程的理想选择,因为它提供了底层的控制能力和面向对象的抽象,使得程序员能有效地处理复杂的网络交互。 在学习C++的过程中,理解和实践是关键。首先,要理解C++的基础概念...
1. Socket编程:理解TCP和UDP协议,学会使用Socket和ServerSocket进行网络通信。 2. HTTP客户端与服务器:了解如何创建简单的HTTP客户端和服务器。 七、设计模式 1. 创建型模式:如单例模式、工厂模式、抽象工厂...
Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。 网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。 编译和解释性 ...
4. **计算机网络**:TCP/IP五层模型,HTTP/HTTPS协议,Socket编程,网络安全,DNS解析,负载均衡等。 5. **数据库知识**:SQL语句(CRUD操作,JOIN,索引,事务处理),关系型数据库理论,ACID特性,NoSQL数据库,...
Linux操作系统是计算机科学领域的一个重要组成部分,尤其在服务器管理、嵌入式开发、云计算等方面占据着举足轻重的地位。Linux系统被设计为以文件的形式管理所有的设备、硬件和资源,这得益于其遵循的哲学原则...
套接字是网络通信中的一个抽象概念,它是两台计算机间通信的端点,提供了数据传输的通道。 `listen`函数的原型如下: ```c int listen(int sockfd, int backlog); ``` 参数`sockfd`是一个指向已经创建并绑定到特定...