目录
一、常见应用层协议
我们先看一下其常用协议的端口号:
HTTP(hypertext transfer protocol)超文本传输协议(80)
HTTPS(secure hypertext transfer protocol)安全文本传输协议(443)
FTP(file transfer protocol)文件传输协议(21)
TELNET(terminal NETwork)远程登录(端口号23)
SMTP简单邮件传输协议(25)
邮局协议POP2-109,POP3-110端口
二、http的无状态
Http 协议无状态的含义:
有状态协议
为什么说http协议是无状态协议
无状态的好处和坏处?
三、http的压缩传输
压缩方式选择哪一种?
如何使用gzip进行压缩
HTTP方式下的Gzip压缩传输
实现:Tomcat 开启Gzip :https://blog.csdn.net/clerk0324/article/details/51672933
几种压缩算法:
linux中tar.gz先打包再压缩
linux下的压缩文件:.tar、.zip、.gz、. tar.gz、.tgz、.bz2
zip和tar的区别如下:
一、常见应用层协议
我们都知道,在TCP/IP模型中,应用层是最高层,应用层包括所有的高层协议,并且不断有新的协议加入。
常用的保留TCP/UDP端口号
常用的保留TCP端口号有:
HTTP 80,FTP 20(数据连接)/21(控制连接),POP3 110,Telnet 23,SMTP 25,DNS 53等。
常用的保留UDP端口号有:
DNS 53,BootP引导协议(BOOTP)服务 67(server)/ 68(client),TFTP 69,SNMP 161等。
我们先看一下其常用协议的端口号:
常用服务 协议 端口号
POP3 TCP 110
IMAP TCP 143
SMTP TCP 25
Telnet TCP 23
终端服务 TCP 3389
PPTP TCP 1723
HTTP TCP 80
FTP(控制) TCP 21
FTP(数据) TCP 20
HTTPS TCP 443
NTP UDP 123
RADIUS UDP 1645
DHCP UDP 67
DNS UDP 53
DNS TCP 53
SNMP UDP 161
ipsec UDP 500
TFTP UDP 69
L2TP UDP 1701
HTTP(hypertext transfer protocol)超文本传输协议(80)
用于传输internet浏览器使用的普通文本、超文本、音频和视频等数据。端口号TCP 80
详情请看博文:这里写链接内容
HTTPS(secure hypertext transfer protocol)安全文本传输协议(443)
是基于HTTP开发的,HTTPS应用了安全套接字层(SSL)作为HTTP应用层的子层,可以对数据进行加密和压缩。端口号443.
FTP(file transfer protocol)文件传输协议(21)
它是基于传输层的TCP协议。
概述
文件传输协议,负责将文件从一台计算机传送到另一台计算机上,并且保证其传输的可靠性,客户端提出文件传输请求,服务器接收请求并提供服务。
过程:
首先在本地计算机上启动FTP客户程序,利用他与远程计算机建立连接,远程计算机上的服务端FTP程序被激活。这样本地的FTP程序成为一个客户,而远程FTP程序成为服务器,他们之间通过TCP建立连接,端口号为21.
功能
1、可以从本地上传和从服务器下载文件
2、能够传输各种类型的文件,包括文件,图片,视频等
3、能够提供对本地和远程计算机的目录操作
4、对文件进行改名删除等操作
FTP协议的客户机与服务器之间需要建立两个连接,一个用于控制数据传输(端口21),一个用于数据传输(端口20)。
数据连接主要用于数据传输,完成文件内容的传输。控制连接主要用于传输FTP控制命令和服务器的回送消息。
TELNET(terminal NETwork)远程登录(端口号23)
概述:
它是Tnternet中用来进行远程访问的重要工具之一。远程登录功能允许用户与远程计算机进行动态交互,即用自己的键盘,鼠标等输入设备操纵远程计算机,运行远程计算机上的软件,在自己的显示器上了解运行情况,查看运行结果。
通信过程
用户的终端实际上与本地的TELNET客户机进行通信,远程主机与远程TELNET服务器进行通信,然后通过tcp进行连接,客户机与服务器之间采用NVT标准进行通信。
1、建立与服务器的TCP连接
2、从键盘上接收用户输入的字符
3、把用户输入的字符串变成标准格式并发送给服务器
4、从远程服务器接收输出的信息
5、把该信息显示在用户的屏幕上
SMTP简单邮件传输协议(25)
TCP端口号为25。
概述
在互联网中,电子邮件的传送是依靠SMTP协议进行的。
SMTP协议包括两个标准子集, 一个标准定义电子邮件信息的格式,另一个是传输邮件的标准。
SMTP的主要任务:负责服务器之间的邮件传送,最大的特点是简单。
只规定了电子邮件如何在互联网中通过TCP协议在发送方和接收方之间进行传送。
工作方式
基于客户/服务器方式进行的。
发送人的主机为客户方,收件人的邮件服务器为服务方。在传送邮件的过程中,需要使用TCP协议进行连接(默认端口号为25)。发送主机先将邮件发送到本地SMTP服务器上,本地SMTP服务器与接收方的邮件服务器建立可靠的TCP连接,从而保证了邮件传输的可靠性。
注意
1. 接收方必须使用POP3协议才能取得自己邮箱中的邮件。
2. POP3协议的主要任务是实现用户计算机和邮件服务器的连接,从邮件服务器的电子邮箱中读取邮件。
邮局协议POP2-109,POP3-110端口
端口说明:109端口是为POP2(Post Office Protocol Version 2,邮局协议2)服务开放的,110端口是为POP3(邮件协议3)服务开放的,POP2、POP3都是主要用于接收邮件的,目前POP3使用的比较多,许多服务器都同时支持POP2和POP3。客户端可以使用POP3协议来访问服务端的邮件服务,如今ISP的绝大多数邮件服务器都是使用该协议。在使用电子邮件客户端程序的时候,会要求输入POP3服务器地址,默认情况下使用的就是110端口(如图)。
二、http的无状态
Http 协议无状态的含义:
有状态协议
常见的许多七层协议实际上是有状态的,例如SMTP协议,它的第一条消息必须是HELO,用来握手,在HELO发送之前其他任何命令都是不能发送的;接下来一般要进行AUTH阶段,用来验证用户名和密码;接下来可以发送邮件数据;最后,通过QUT命令退出。可以看到,在整个传输层上,通信的双方是必须要时刻记住当前连接的状态的,因为不同的状态下能接受的命令是不同的;另外,之前的命令传输的某些数据也必须要记住,可能会对后面的命令产生影响。这种就叫做有状态的协议。
为什么说http协议是无状态协议
为什么说HTTP是无状态的协议呢?因为它的每个请求都是完全独立的,每个请求包含了处理这个请求所需的完整的数据,发送请求不涉及到状态变更即使在HTTP/1.1上,同一个连接允许传输多个HTTP请求的情况下,如果第一个请求出错了,后面的请求一般也能够继续处理(当然,如果导致协议解析失败、消息分片错误之类的自然是要除外的)。可以看出,这种协议的结构是要比有状态的协议更简单的,一般来说实现起来也更简单,不需要使用状态机,一个循环就行了。
参考:https://blog.csdn.net/songxiao1124/article/details/120119388
无状态的好处和坏处?
“无状态”有什么好处呢?
- 因为服务器没有“记忆能力”,所以就不需要额外的资源来记录状态信息,不仅实现上会简单一些,而且还能减轻服务器的负担,能够把更多的CPU和内存用来对外提供服务。
- 而且,“无状态”也表示服务器都是相同的,没有“状态”的差异,所以可以很容易地组成集群,让负载均衡把请求转发到任意一台服务器,不会因为状态不一致导致处理出错,使用“堆机器”的“笨办法”轻松实现高并发高可用。
那么,“无状态”又有什么坏处呢?
既然服务器没有“记忆能力”,它就无法支持需要连续多个步骤的“事务”操作。例如电商购物,首先要登录,然后添加购物车,再下单、结算、支付,这一系列操作都需要知道用户的身份才行,但“无状态”服务器是不知道这些请求是相互关联的,每次都得问一遍身份信息,不仅麻烦,而且还增加了不必要的数据传输量。
所以,HTTP协议最好是既“无状态”又“有状态”,不过还真有“鱼和熊掌”两者兼得这样的好事,这就是“小甜饼”Cookie技术。
参考:https://blog.csdn.net/chuangshangbeidong/article/details/115822481
三、http的压缩传输
HTTP1.1开始,Web客户端可以通过请求头中Acceppt-Encoding头来标识对压缩的支持。
客户端HTTP请求头声明客户端浏览器支持的压缩方式,服务端配置启用压缩,压缩的文件类型,压缩方式。当客户端请求到达服务器,服务器响应时对请求资源进行压缩,返回给客户端浏览器,浏览器按照相应的方式进行解析。
压缩方式选择哪一种?
事实上这点不用我们操心,选择gzip就可以了,参考Yahoo!工程师的说法,支持gzip的浏览器范围最广,使用gzip的压缩效果最佳。实际上经过我亲自考证,www.tmall.com、www.taobao.com、www.jd.com、www.suning.com、www.qq.com、www.baidu.com 这些大型网站都无一例外的使用了gzip这种压缩方式。
如何使用gzip进行压缩
其实很简单,客户端不用任何配置,在服务端配置即可,服务器不同,配置方法也不尽相同。
参考:https://blog.csdn.net/weixin_30336701/article/details/117846600
HTTP方式下的Gzip压缩传输
gzip是一种数据格式,默认且目前仅使用deflate算法压缩data部分:
Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台。当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。这取决于文件中的内容。
实现:Tomcat 开启Gzip :https://blog.csdn.net/clerk0324/article/details/51672933
几种压缩算法:
RLE(Run Length Encoding)算法:行程长度编码!
算法的大致思想就是将一串连续的英文字母中连续重复出现的次数计算出来,然后只是使用对应的单个字符和出现的次数来进行重新计数。
原理参考:https://blog.csdn.net/zyd2016/article/details/113116097
LZW压缩:LZW压缩是一种无损压缩,应用于gif图片。适用于数据中存在大量重固子串的情况。
原理:LZW算法中,首先建立一个字符串表,把每一个第一次出现的字符串放入串表中,并用一个数字来表示,这个数字与此字符串在串表中的位置有关,并将这个数字存入压缩文件中,如果这个字符串再次出现时,即可用表示它的数字来代替,并将这个数字存入文件中。压缩完成后将串表丢弃。如"print" 字符串,如果在压缩时用266表示,只要再次出现,均用266表示,并将"print"字符串存入串表中,在图象解码时遇到数字266,即可从串表中查出266所代表的字符串"print",在解压缩时,串表可以根据压缩数据重新生成。
哈夫曼编码:哈夫曼编码是无损压缩当中最好的方法。将出现频率最高的字符使用最短的数字的来表示,依次递增。出现频率最低的字符使用最长的数字来表示
它使用预先二进制描述来替换每个符号,长度由特殊符号出现的频率决定。常见的符号需要很少的位来表示,而不常见的符号需要很多位来表示。哈夫曼算法在改变任何符号二进制编码引起少量密集表现方面是最佳的。然而,它并不处理符号的顺序和重复或序号的序列。
游程编码(RLC):游程编码又称“运行长度编码”或“行程编码”,是一种无损压缩编码,JPEG图片压缩就用此方法,很多栅格数据压缩也是采用这种方法。
详细:https://blog.csdn.net/fanyun_01/article/details/80211799?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-3.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-3.pc_relevant_default&utm_relevant_index=6文章来源:https://www.toymoban.com/news/detail-404789.html
linux中tar.gz先打包再压缩
linux下的压缩文件:.tar、.zip、.gz、. tar.gz、.tgz、.bz2
参考:https://blog.csdn.net/weixin_28725037/article/details/116897408文章来源地址https://www.toymoban.com/news/detail-404789.html
zip和tar的区别如下:
- tar是Unix和类Unix系统上的打包工具,可以将多个文件合并为一个文件,打包后的文件后缀亦为“tar”。
tar
本身将文件捆绑在一起(结果称为 tarball ) - ZIP是一种相当简单的分别压缩每个文件的存档格式,他的重要作用是压缩。分别压缩文件允许不必读取另外的数据而检索独立的文件
到了这里,关于常见应用层协议端口号及简介【HTTP80、FTP20(数据连接)21(控制连接)、POP3 110、DNS 53、TFTP文件传输协议 69】、http无状态、http的压缩传输的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!