什么是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 ...
随机推荐
- Service Mesh 初体验
前言 计算机软件技术发展到现在,软件架构的演进无不朝着让开发者能够更加轻松快捷地构建大型复杂应用的方向发展.容器技术最初是为了解决运行环境的不一致问题而产生的,随着不断地发展,围绕容器技术衍生出来越来 ...
- python学习-并发编程(十四)
14.2线程的创建与启动 import threading # 定义一个普通的action函数,该函数准备作为线程执行体 def action(max): for i in range(max): p ...
- 18.Linux磁盘管理
1.磁盘分区工具fdisk 1. 添加一块小于2TB的磁盘进行使用,步骤如下: 给虚拟机添加一块新的硬盘 使用fdisk进行分区 使用mkfs进行格式化 使用mount进行挂载 PS: 生产分区建议, ...
- Spring Cloud ---- 服务消费与负载均衡(Rest + Ribbon )
上一篇主要写了基于Eurake的服务的注册,主要就是创建注册中心,创建服务者,将服务者注册到注册中心,完成服务的暴露.这一篇主要写服务的消费与服务消费的负载均衡. 服务的调用方式有两种,Rest + ...
- 04 python学习笔记-函数、函数参数和返回值(四)
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print(),我们也可以自己创建函数,这叫做用户自定 ...
- TwoHandleSlider/RangeSlider
项目需求:双滑块slider,可以实现选择一个范围 (一)添加两个slider,并把背景以及fill设置为透明,并去除RaycastTarget (二)在背景下添加个一个image,背景图为滑块划过后 ...
- JavaScript随机生成布尔值
//方法一 var rand = Boolean(Math.round(Math.random())); conosole.log(rand) // 方法二: var arr = [true,fals ...
- vue订阅者模式
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- SpringCloud之Zuul配置问题
当通过网关去调用服务的时候,尤其是服务里面配置了熔断,会发现拿不到熔断返回的信息 hystrix: command: default: execution: isolation: thread: ti ...
- 第三十七章 POSIX线程(一)
POSIX线程库相关介绍 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都有"pthread_"开头 要使用这些函数库,都需要加入头文件"<pth ...