HTTP、TCP、UDP、Socket (转)
先来一个讲TCP、UDP和HTTP关系的
1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。
2、HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。
HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。一次TCP链接的建立将需要3次握手。
另外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性,因此HTTP/1.1提出了可持续链接的实现方法。HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息,因此减少了链接建立的次数和经常性的链接开销。
3、结论:虽然HTTP本身是一个协议,但其最终还是基于TCP的。不过,目前,有人正在研究基于TCP+UDP混合的HTTP协议。
Socket是什么呢?
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
原文地址:http://blog.csdn.net/xijiaohuangcao/archive/2010/12/29/6105623.aspx
转载于:https://www.cnblogs.com/zjoch/archive/2012/08/17/2643624.html
HTTP、TCP、UDP、Socket (转)相关推荐
- Linux Kernel TCP/IP Stack — Socket Layer — TCP/UDP Socket 网络编程
目录 文章目录 目录 TCP/UDP Socket 逻辑架构 创建 Socket 绑定 Socket 请求建立 Socket 连接 监听 Socket 接受请求 关闭连接 数据的发送和接收 send ...
- TCP/UDP,SOCKET,HTTP,FTP协议简析
(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传 ...
- 网络调试工具TCP/UDP socket的使用
TCP/UDP socket调试工具的使用,可以在想服务器发送命令,或者查看服务器返回的数据. 打开界面后选择左边客户端还是服务端,使用TCP还是udp,点击创建相应的模拟环境.
- TCP UDP socket http webSocket 之间的关系
阅读目录 OSI & TCP/IP 模型 几者之间的关系 HTTP Socket WebSocket webSocket 概念 webSocket 优点 Websocket 的作用 ajax轮 ...
- TCP/UDP/Socket 通俗讲解
1.封包和拆包 封包,就是发送数据前把自己本地需要发送的数据包装一下,即把要发送的原始数据附加上接受者可以辨识到自己身份等一些额外信息.有点像寄一封信,信封上填写的寄件人和收件人以及地址. 拆包,是接 ...
- Java TCP/UDP socket 编程流程总结
最近正好学习了一点用java socket编程的东西.感觉整体的流程虽然不是很繁琐,但是也值得好好总结一下. Socket Socket可以说是一种针对网络的抽象,应用通过它可以来针对网络读写数据.就 ...
- tcp/udp socket编程异同
一.TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式 TCP保证数据正确性,UDP可能丢包 TCP保证数据顺序,UDP不保证 ...
- TCP/UDP/SOCKET/HTTP浅谈
1.TCP 和 UDP两者区别: 一.概念的区别:TCP 是面向连接的传输控制协议 , UDP提供了一种无需连接的数据报服务 二.核心的区别:TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序 ...
- python(18):网络编程(七层协议+tcp/udp+socket编程)
Python作为最热门的语言,使我们每个人应该学习的一门技术! 本文针对初学者,我会用最容易的方式告诉你如何入门python! 一.基本网络概念 1.计算机之间如何进行联机 早期: 以太网:局域网与交 ...
- [网络] SOCKET, TCP/UDP, HTTP, FTP
(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传 ...
最新文章
- autoware定位:gnss定位与lidar定位(四)
- C++中前置声明介绍
- java 多线程的使用_Java的多线程1:线程的使用
- springboot中的spring-session用mysql实现session共享实践
- c 调用openoffice word转pdf_批量 Word 转 PDF 方法
- zstd安装_PHP: 安装 - Manual
- ffmpeg编码越来越小_从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题(5)
- 美国喜提刷脸登机,官方开心发通告,竟马上引发公民不适
- c#执行插入sql 时,报错:异常信息:超时时间已到。在操作完成之前超时时间已过或服务器未响应
- 设置电脑的保护色(绿豆沙色)
- matlab的基本语法规则_Matlab基本语法与指令
- IELTS11 Test2 laws are needed to make people recycle more of their waste
- Removing unused resources requires unused code shrinking to be turned on 解决
- 【详细】【转】CentOS 7部署ASP.NET Core应用程序
- Mysql之三少一多原则
- db2经典SQL语句大全
- Unity项目--LoyPoly风格的FPS Demo(附试玩地址)
- Starvis星光全彩摄像机技术
- 毕业设计-基于深度学习的数据融合方法研究
- 嵌入式的应用领域有哪些呢?
热门文章
- Codeforces Round #201 (Div. 2)C,E
- SWIFT推送之本地推送(UILocalNotification)之二带按钮的消息
- Shell应用:批量将文件编码由gbk转utf-8
- USACO / Cow Pedigrees(DP)
- mysql gui vim_vim(一): 小技巧
- 66-Flutter移动电商实战-会员中心_编写ListTile的通用方法
- 微信小程序开发实战基础一、页面跳转,底部导航栏,分享,加载图片标签,列表
- Minimum supported Gradle version is 4.1. Current version is 4.0.
- cesium 修改 鼠标 样式
- ElasticSearch统计总数据量