什么是TCP, UDP, HTTP, HTTPS协议?
TCP
传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。
TCP主要特点:
1. 面向连接:
(1)应用程序在使用TCP协议之前,必须先建立TCP连接。
(2)在传输数据完毕后,必须释放已经建立的TCP连接。
2. 每一条TCP连接只能是点对点的(一对一)
3. 提供可靠交付的服务:
(1)通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达;
4. 提供全双工通信:
(1)TCP允许通信双方的应用进程在任何时候都能发送数据。
(2)TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。
(3)在发送时,应用程序把数据传输给TCP的缓存后,就可以做自己的事,而TCP在合适的时候把数据发送出去。
(4)在接收时,TCP把收到的数据放入缓存,上层的应用进程在合适的时候读取缓存中的数据。
5. 面向字节流:
(1)TCP中的流指的是流入到进程或从进程留出的字节序列。
UDP
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议。UDP为应用程序提供了一种无需建立连接就可以发送封装的IP 数据报的方法。RFC768描述了UDP
UDP主要特点:
1. 无连接:
(1) UDP是无连接的,即通信时不需要创建连接(发送数据结束时也没有连接可以释放)所以减小了开销和发送数据前的时延。
2. 尽最大努力交付:
(1) 不保证可靠交付,因此主机不需要维护复杂的连接状态。
3. 面向报文:
(1) 只在应用层交下来的报文前增加了首部后就向下交付IP层。
4. 无拥塞控制:
(1) UDP是无阻塞控制的,即使网络中存在阻塞,也不会影响发送端的发送频率。
5. 支持一对一、一对多、多对一和多对多的交互通信;
6. 首部开销小(只有四个字段:源端口、目的端口、长度、检验和):
(1) 只有8个字节,它比TCP的20个字节的首部要短
HTTP
1. http是一个简单的请求-响应协议,它通常运行在TCP之上。
2. 它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
3. 请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。
4. 这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当。
http主要特点:
1.支持客户/服务器模式。
2.简单快速:
(1) 客户向服务器请求服务时,只需传送请求方法和路径。
(2) 请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。
(3) 由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 3.灵活:
(1) HTTP允许传输任意类型的数据对象。
(2) 正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。 4.无连接:
(1) 无连接的含义是限制每次连接只处理一个请求。
(2) 服务器处理完客户的请求,并收到客户的应答后,即断开连接。
(3) 采用这种方式可以节省传输时间。 5.无状态:
(1) HTTP协议是无状态协议。
(2) 无状态是指协议对于事务处理没有记忆能力。
(3) 缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
(4) 一方面,在服务器不需要先前信息时它的应答就较快。
HTTPS
(简而言之,就是对http进行了加密)
1. HTTPS 是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。
2. HTTPS 在HTTP的基础下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
3. HTTPS 存在不同于HTTP的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。
4. 这个系统提供了身份验证与加密通讯方法。
5. 现在它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。
HTTPS主要特点:
1. 基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护 2. 内容加密:
(1) 采用混合加密技术,中间者无法直接查看明文内容 3. 验证身份:
(1) 通过证书认证客户端访问的是自己的服务器 4. 保护数据完整性:
(1) 防止传输的内容被中间人冒充或者篡改
什么是TCP, UDP, HTTP, HTTPS协议?的更多相关文章
- 涨知识-VI 基于TCP/UDP的应用层协议
基于TCP/UDP的应用层协议: 基于TCP: Telnet(Teletype over the Network, 网络电传),通过一个终端(terminal)登陆到网络 FTP(File Trans ...
- [na]tcp&udp层各协议小结
TCP和UDP 传输层功能: 可靠性:序列号.确认号&flag位 有效性:win滑动窗口 这篇目录索引: Tcp可靠性 Tcp流控 Tcp拥塞控制 Tcp运输连接管理 TCP的可靠性和流控 为 ...
- TCP/IP,三次握手四次挥手,TCP/UDP , HTTP/HTTPS
internet:通用名词,由多个计算机网络组成的网络,网络间的通信协议是任意的 Internet:专用名词,当前全球最大的开放计算机网络,采用TCP/IP协议族作为通信的规则.www万维网是广泛应用 ...
- 网络编程基础socket 重要中:TCP/UDP/七层协议
计算机网络的发展及基础网络概念 问题:网络到底是什么?计算机之间是如何通信的? 早期 : 联机 以太网 : 局域网与交换机 广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无 ...
- TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景
一.OSI 模型 OSI 模型主要作为一个通用模型来做理论分析,而TCP/IP 协议模型是互联网的实际通讯协议,两者一般做映射分析,以下不做严格区分和声明(好吧,比较懒): OSI 整个模型层次大致可 ...
- TCP/UDP端口列表
http://zh.wikipedia.org/wiki/TCP/UDP%E7%AB%AF%E5%8F%A3%E5%88%97%E8%A1%A8 TCP/UDP端口列表 本条目可通过翻译外语维 ...
- TCP/UDP 常用端口列表
计算机之间依照互联网传输层TCP/IP协议不同的协议通信,都有不同的对应端口.所以,利用短信(datagram)的UDP,所采用的端口号码不一定和采用TCP的端口号码一样.以下为两种通信协议的端口列表 ...
- TCP/UDP端口列表(WIKIpedia)
计算机之间依照互联网传输层TCP/IP协议不同的协议通信,都有不同的对应端口.所以,利用短信(datagram)的UDP,所采用的端口号码不一定和采用TCP的端口号码一样.以下为两种通信协议的端口列表 ...
- TCP/UDP Linux网络编程详解
本文主要记录TCP/UDP网络编程的基础知识,采用TCP/UDP实现宿主机和目标机之间的网络通信. 内容目录 1. 目标2.Linux网络编程基础2.1 嵌套字2.2 端口2.3 网络地址2.3.1 ...
随机推荐
- python中的随机函数
python--随机函数(random,uniform,randint,randrange,shuffle,sample) 本文转载自:[chamie] random() random()方法:返回随 ...
- Mqtt-Client
客户端选择:paho MQTT client. 使用vs2013编译成库 需要用到paho-mqtt3a库和paho-mqtt3c库.
- javascript运行时中的堆栈和队列
下面是一个理论上的模型,js引擎着重实现和优化了描述的这几个语义 可视化描述 栈(stack) var a = 10; function bar(x) { var b = 5; fn(x + b); ...
- C#关于private protected sealed Virtual/Override
Public:公开权限 Private:修饰类时类为程序集或者包含此类的类内部权限:修饰变量时只能类内部使用: Protected:修饰变量,只能继承类可以使用,对外(包括继承类的实例)无权限: Ab ...
- carousel.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- C语言中为什么float型数据的范围是3.4E-38~3.4E+38
因为float所占的位数决定了他的大小位数就是计算机的存储所需要的bit多少32位浮点,64位双精度浮点范围不同//////////////////////以前学计算系统基础的时候有这么个说法计算机存 ...
- Scrapy 框架入门简介
一.Scrapy框架简介 Scrapy 是用 Python 实现的一个为了爬取网站数据.提取结构性数据而编写的应用框架. Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. ...
- markdown 入门教程(完整版)
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 1. 标题 Markdown支持6种级别的标题,对应html标签 h1 ~ h6 ...
- (二)golang--windows下vscode的安装以及go环境的配置
在官网上下载vscode对应的安装包,进行安装: 安装的时候记得勾选加入到path路径: 下载go语言的SDK:https://studygolang.com/dl目前最新版本是1.13.4,我就下这 ...
- 在VMware下进行的使用ssh服务管理远程主机
基于密钥的安全验证--sshd服务的配置文件解析(两台linux) 首先你有两台虚拟机 并且能够ping通(该实验的目的是通过客户端访问服务端) 打开终端进入到这个界面 看一下服务 如果有这三个服 ...