`
blueyanghualong
  • 浏览: 228522 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SOCKET 与 HTTP

 
阅读更多

 

4.1 SOCKET与TCP/IP 关系

Socket 是一种应用接口, TCP/IP 是网络传输协议,虽然接口相同, 但是不同的协议会有不同的服务性质。创建Socket 连接时,可以指定使用的传输层协议,Socket 可以支持不同的传输层协议(TCP 或UDP ),当使用TCP 协议进行连接时,该Socket 连接就是一个TCP 连接。Soket 跟TCP/IP 并没有必然的联系。Socket 编程接口在设计的时候,就希望也能适应其他的网络协议。所以,socket 的出现只是可以更方便的使用TCP/IP 协议栈而已。

4.2 SOCKET对 TCP/IP 的使用

Socket 其对TCP/IP 进行了抽象,形成了几个最基本的函数接口。比如create ,listen ,accept ,connect ,read 和write 等等。如果一个程序创建了一个socket ,并让其监听80 端口,其实是向TCP/IP 协议栈声明了其对80 端口的占有。以后,所有目标是80 端口的TCP 数据包都会转发给该程序(这里的程序,因为使用的是Socket 编程接口,所以首先由Socket 层来处理)。所谓accept 函数,其实抽象的是TCP 的连接建立过程。accept 函数返回的是socket 其实指代的是本次创建的连接,而一个连接是包括两部分信息的,一个是源IP 和源端口,另一个是宿IP 和宿端口。所以,accept 可以产生多个不同的socket ,而这些socket 里包含的宿IP 和宿端口是不变的,变化的只是源IP 和源端口。这样的话,这些socket 宿端口就可以都是80 ,而Socket 层还是能根据源/ 宿对来准确地分辨出IP 包和socket 的归属关系,从而完成对TCP/IP 协议的操作封装!

4.3 SOCKET与 HTTP 的关系

--一个是发动机(Socket),提供了网络通信的能力 
--一个是轿车(Http),提供了具体的方式

1)      http 协议手机都支持,socket 不一定。

2)      http 只能是一问一答(即以request/response 的方式连网收发信息), 而socket 可以双向通讯( 定位到某一URL 后, 就可以双方收发信息, 无需request/response) 。

3)      Socket 可能会被防火墙屏蔽, 但http 可以穿越防火墙。

HTTP 是基于Socket 通信的子协议, Socket 收发信息自由, 协议都可由使用者定义。 HTTP 在Socket 基础上做了协议规范, 通信只能按照特定的格式去做, 用户可在HTTP 上做自己的子协议, 如网页浏览,webservice ,soap等

 

soap:是http post的一个专用版本,遵循一种特殊的xml消息格式 。

 

 

TCP/IP 4 层模型以及每层主要功能描述如下:

应用层(Application Layer)

TCP/IP 组中的应用层综合了 OSI 应用层、表示层以及会话层的功能。因此,在 TCP/IP 结构中,传输层以上的任何过程都称之为应用。在 TCP/IP 中,使用套接字(socket)和端口描述应用程序通信路径。大多数应用层协议与一个或多个端口号相关联。

传输层(Transport Layer)

TCP/IP 结构中包含两种传输层协议。其一传输控制协议(TCP),确保信息传输过程。其二用户数据报协议(UDP),直接传输数据报,而不需要提供端对端可靠校验。两种协议对应不同的应用具有各自功能。

网络层(Network Layer)

TCP/IP 网络层中的主要协议是网际协议(IP)。所有网络层以下或以上的各层通信在跨越 TCP/IP 协议栈时,都必须通过 IP 完成。此外,网络层还包含部分支持性协议,如 ICMP,实施和管理路由过程。

网络访问层(Network Access Layer)

在 TCP/IP 结构中,网络访问层由数据链路层和物理层合并而成。TCP/IP 网络访问层并没有重新定义新标准,而是有效利用原有数据链路层和物理层标准。很多 RFC 中描述了 IP 如何使用数据链路协议并作为其接口界面,如以太网、令牌环、FDDI、HSSI 和 ATM 等。物理层中规定了硬件通信属性,但它不直接作为网络层及以上层的 TCP/IP 协议的接口。
分享到:
评论

相关推荐

    编程选择题40道:网络编程:Socket与HTTP协议的使用.Tex.docx

    编程选择题40道:网络编程:Socket与HTTP协议的使用.Tex.docx

    SOCKET转HTTP

    ### SOCKET转HTTP技术详解 #### 一、引言 随着互联网技术的发展,数据通信成为连接全球用户的关键技术之一。...未来,随着网络技术的不断发展,Socket与HTTP之间的交互将会更加紧密,为开发者提供更多的可能性。

    Socket实现HTTP下载协议.rar

    这些代码可以帮助初学者更好地理解Socket与HTTP协议的结合使用。 总之,Socket实现HTTP下载协议需要理解HTTP的工作原理,构建正确的HTTP请求,解析服务器的响应,并使用Socket进行数据传输。这个过程涉及网络编程、...

    c#使用Socket发送HTTP/HTTPS请求的实现代码

    "C#使用Socket发送HTTP/HTTPS请求的实现代码" C#中使用Socket发送HTTP/HTTPS请求是一种高效的方法,特别是在需要自定义HTTP封包或对HTTP请求进行深入控制时。本文主要介绍了如何使用C#的Socket类来发送HTTP/HTTPS...

    使用socket基于c#编写的服务器端的方法

    ### 使用C#编写基于Socket的服务器端方法 在IT领域,网络编程是极其重要的...同时,还讨论了Socket与HTTP协议之间的关系及其在实际开发中的应用。掌握这些核心概念和技术细节对于进行高效、可靠的网络编程至关重要。

    利用C# Socket 实现HTTP WEB服务器

    在本文中,我们将深入探讨如何使用C#编程语言和Socket技术来实现一个基本的HTTP Web服务器。C#是一种面向对象的、类型安全的编程语言,广泛应用于Windows平台上的应用程序开发,包括网络服务。Socket是网络通信的...

    Android下socket模拟http server

    在Android平台上,我们可以利用Socket编程来模拟一个简单的HTTP服务器,以提供本地文件系统中的资源,如HTML文件,供外部设备(如浏览器)访问。这个过程涉及到Android系统的网络权限管理、Socket编程以及HTTP协议的...

    基于socket的浏览器

    创建一个基于Socket的浏览器意味着我们不再依赖于WebBrowser控件,而是直接通过Socket与HTTP服务器进行交互,发送HTTP请求并接收响应数据。 在该浏览器项目中,开发者选择了不使用WebBrowser控件,原因可能是为了更...

    C语言socket发送http请求的例子源代码

    C语言socket发送http请求的例子源代码 一个使用C语言socket发送http请求的例子 这是一个linux下使用C的标准socket,进行http访问的例子。通过socket发送get请求,从中国天气网获得指定城市的天气。 该例子在ubuntu ...

    基于Socket的http监听

    【基于Socket的http监听】是一种网络编程技术,用于构建自定义的HTTP服务器,它通过使用低级别的Socket接口来实现对HTTP请求的接收和响应。在Java等编程语言中,Socket编程是实现网络通信的基础,而HTTP监听则是在...

    socket 实现http下载

    在IT领域,网络编程是不可或缺的一部分,而Socket编程则是实现客户端与服务器通信的基础。本话题主要探讨如何使用Socket实现HTTP下载,这对于理解HTTP协议的工作原理和深入学习网络编程至关重要。 HTTP(超文本传输...

    socket实现HTTP代理服务器

    2. **绑定地址**:使用 `bind` 函数将 Socket 与本地地址和端口绑定。 3. **监听连接**:调用 `listen` 函数使 Socket 进入监听状态,等待客户端连接。 4. **接受连接**:通过 `accept` 函数接受客户端的连接请求。 ...

    SuperSocket Socket C# 通讯详细介绍

    首先,SuperSocket是一个轻量级的Socket服务端框架,它支持多种通信协议,如自定义协议、HTTP、FTP等。它的设计目标是提供一个易于扩展的平台,让开发者可以专注于业务逻辑,而不必关心底层Socket通信的复杂性。 **...

    java socket编写的上网代理

    3. **Socket与HTTP代理的结合**: 在这个项目中,Java Socket被用来实现HTTP代理功能。当用户配置浏览器使用该代理服务器,所有HTTP请求都将通过指定的端口(这里是10101)发送到Socket服务器。Socket服务器接收到...

    c语言编写 基于SOCKET HTTP Json 请求

    总之,C语言的SOCKET编程结合HTTP协议和JSON数据格式,提供了在各种应用场景中与服务器交互的能力,如API调用、数据上传等。理解并熟练掌握这些技术,对于任何希望在系统级编程或者网络开发领域深造的人来说,都是...

    socket 连接http 服务器

    4种方法实现socket数据转发,socket 连接http 服务器. 内有socket,select,poll,多线程等的详细实例

    socket模拟HTTP协议头

    本文将深入探讨如何使用Socket来模拟HTTP协议头,以便与Web服务器进行交互并接收响应信息。 HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,它定义了客户端(如浏览器)与服务器之间的通信格式。而...

    java 用socket 下载http 网页

    java 用socket 下载http 网页, 供参考, 其精髓是socket和http头部报文

    http 连接 使用socket

    在HTTP连接中使用Socket,我们可以更底层地控制HTTP请求和响应的过程,比如实现自定义的HTTP客户端或服务器。 首先,理解HTTP连接的基本流程是必要的。HTTP连接通常包含以下几个步骤:建立TCP连接、发送HTTP请求、...

    socket详解 socket详解 socket详解 socket详解

    例如,HTTP、FTP、TELNET 等协议都是基于流的 Socket。 * 基于数据报的 Socket:使用 UDP 协议,提供不可靠的、无序的、可能损失的数据传输。例如,DNS、SNMP 等协议都是基于数据报的 Socket。 C# 中的 Socket 编程...

Global site tag (gtag.js) - Google Analytics