参考了很多该博主的博客:https://blog.youkuaiyun.com/sinat_33087001/article/details/77934776
网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。
arpanet:TCP/IP标准网络协议
OSI/RM模型将计算机网络体系结构的通信协议划分为七层,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。其中第四层完成数据传送服务,上面三层面向用户。
TCP/IP四层协议以及TCP/IP五层协议
各层的协议
物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器)
数据链路层:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP(路由器)
传输层:TCP、UDP、SPX
(网关)
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
各层的作用
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU),为应用进程之间的通信确立规范
统一资源定位符(URL):全球性地址,用于定位网上的资源
协议(http://):HTTP超文本传输协议,网页在网上传输的协议
服务器名(www/mail):main代表着是一个邮箱服务器、www服务器
域名(163.com):又叫主机名,需要解析具体地址,到顶级域名截止
在浏览器中输入 www.baidu.com 后执行的全部过程
现在假设如果我们在客户端(客户端)浏览器中输入http://www.baidu.com,而baidu.com为要访问的服务器(服务器),下面详细分析客户端为了访问服务器而执行的一系列关于协议的操作:
1,在应用层,客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
2,在运输层,客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
3,在网络层,客户端的网络层不关心传输层和应用层,只是向上提供简单的,无连接的,尽最大努力交付的数据报服务,主要工作是通过查找路由表确定如何到达服务器。具体点到点的通信交给数据链路层
4,在数据链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
5,在物理层被封装成比特流传送
物理层
激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层记住两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器。
物理层的作用:物理层确保原始的数据可在各种物理媒体上传输。
物理层的协议:RJ45、CLOCK、IEEE802.3
物理层的设备:中继器(Repeater,也叫放大器)和集线器。
数据链路层
数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层
功能主要有:
如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;
如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;
如何在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。数据链路层在不可靠的物理介质上提供可靠的传输。
数据链路层的作用:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。数据链路层为网络层提供可靠的数据传输
数据链路层的协议:PPP(点对点协议)、FR、HDLC、VLAN、MAC
数据链路层的设备:网桥,交换机
封装成帧:MTU(最大传送单元),MTU也就是IP数据报的长度上限
帧首部+帧得数据部分(IP数据报)+帧尾部
透明传输:为了解决透明传输的问题,可以使用字符填充或者字节填充,在数据部分中出现SOH和EOT的部分加一个转义字符ESC
SOH+装在帧中的数据部分+EOT
差错检测:使用CRC循环冗余检测(处理比特差错),帧内的差错检测和传输过程中帧出现的帧丢失,帧重复,帧失序。为了防止出现传输差错,增加了:帧编号,确认和重传机制。
ppp传输协议
协议的组成结构
1,将IP数据报封装到串行链路的方法(数据报长度不可超过MTU)
2,一个用来建立、配置和测试数据链路连接的链路控制协议LCP
3,一套网络控制协议NCP
ppp帧的格式
首部 信息部分 尾部
E A C 协议 IP数据报 FCS F
7E FF 03 7E
字节 1 1 1 2 可变长度(<=1500) 2 1
和下层的对接:物理层将数据变为了比特流,让它传送起来非常快。
网络层
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。
网络层中涉及众多的协议,其中包括最重要的协议,也是TCP/IP的核心协议——IP协议。IP协议非常简单,仅仅提供不可靠、无连接的传送服务。
IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP。
网络层IP的作用:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。数据链路层为网络层提供可靠的数据传输
网络层IP的协议:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP
网络层IP的设备:路由器
网络地址:IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络。
IP地址={<网络号>,<主机号>}
A类地址(50%)以0开头,第一个字节作为网络号
地址范围为:1.0.0.0 到126.0.0.0
每个A类子网最大主机数2^24-2 = 16777214
B类地址(25%)以10开头,前两个字节作为网络号,默认128.0.0.0不指派
地址范围为:128.1.0.0到191.255.255.255
每个B类子网最大主机数2^16 -2 = 65534
C类地址(12.5%)以110开头,前三个字节作为网络号,默认192.0.0.0不指派
地址范围为:192.0.1.0~223.255.255.255。
每个C类子网最大主机数2^8 -2 = 254
D类地址以1110开头
地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信)
E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。
注意:注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。
1.同一个局域网上的主机或路由器中的ip地址中的网络号必须是一样的
2.两个路由器直连时可以不分配IP地址
3.用网桥(交换机)互联的网段仍然是一个局域网
首部+应用层数据+尾部
TCP报文
↓
首部 网络层及以上使用IP地址
IP数据报
↓
首部 数据链路层使用硬件地址
MAC帧
ip地址到硬件地址的映射,由ARP协议来完成,注意,APR协议是解决同一个局域网上的主机或者路由器的IP地址和硬件地址的映射问题。
地址解析协议(ARP),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
ARP是广播发送,ARP响应是单播发送的。
RARP是逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。
RIP协议 :底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。
OSPF协议 :开放式最短路径优先,底层是迪杰斯特拉算法,是链路状态路由选择协议,它选择路由的度量标准是带宽,延迟。
它只是一个协议名字,并不表示其他的路由选择协议不是“最短路径优先”。
OSPF最主要的特征就是使用分布式的链路状态协议,OSPF有三个要点:
向本自治系统中所有路由器发送信息。使用洪泛法,路由器通过所有输出端口向所有相邻的路由器发送信息。
发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。链路状态就是说明本路由器都和那些路由器相邻,以及该链路的“度量”(metric)。用来表示费用、距离、时延、带宽、等等。
只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送信息
OSPF特点:
(1)OSPF允许管理员给每条路由指派不同的代价。OSPF对于不同类型的业务可计算出不同的路由。
(2)如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径,这叫做路径间的负载均衡。
(3)所有在OSPF路由器之间交换的分组,都具有鉴别的功能。
(4)OSPF支持可变长度的子网划分和无分类的编址CIDR.
(5)由于网络中的链路状态可能经常发生变化,因此OSPF让每一个链路状态都带上一个32位的序号,序号越大状态就越新
分组转发算法
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
(2) 若网络 N 与此路由器直接相连。则把数据报直接交付目的主机 D。否则是间接交付,运行(3)。
(3) 若路由表中有目的地址为 D 的特定主机路由。则把数据报传送给路由表中所指明的下一跳路由器。否则,运行(4)。
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器。否则,运行(5)。
(5) 若路由表中有一个默认路由。则把数据报传送给路由表中所指明的默认路由器;否则,运行(6)。
(6) 报告转发分组出错。
特定主机路由:这样的路由是为特定的目的主机指明一个路由。采用特定主机路由可使网络管理人员能更方便地控制网络和測试网络,同一时候也可在须要考虑某种安全问题时采用这样的特定主机路由。
默认路由的作用:路由器还可采用默认路由以降低路由表所占用的空间和搜索路由表所用的时间。仅仅要目的网络在路由表中匹配不到,就一律选择默认路由
IPv4的弊端:网络号占位太多,而主机号位太少,所以其能提供的主机地址也越来越稀缺。
通常都对一个高类别的IP地址进行再划分,以形成多个子网,提供给不同规模的用户群使用。主要是为了在网络分段情况下有效地利用IP地址,通过对主机号的高位部分取作为子网号,从通常的网络位界限中扩展或压缩子网掩码,用来创建某类地址的更多子网。但创建更多的子网时,在每个子网上的可用主机地址数目会比原先减少。
子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进制地址,其每一个为1代表该位是网络位,为0代表主机位。它和IP地址一样也是使用点式十进制来表示的。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。
利用子网数来计算
如果想把B类地址168.195.0.0划分成27个子网,则子网掩码为:
1.把数目转化为二进制:27个子网,二进制为11011,
2.取的该二进制位数:5
3.将B类地址168.195.0.0的主机位前5位置1,得到255.255.248.0
利用主机数来计算
如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台1.700台主机转为二进制
700 = 10 10111100
2.如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位;
占据10位二进制位
3.则子网掩码为255.255.11111100,00000000,也就是255.255.252.0
已知掩码求主机数
把网络202.112.78.0划分为多个子网(子网掩码是255.255.255.192),则各子网中可用的主机地址总数是:
因为192占用2位且是C类地址,所以子网数为2^2-2 = 2每个子网的主机数是2^6-2 = 62,所以总的主机数是124。
运输层
运输层向它上面的应用层提供通信服务,两个主机进行通信就是两个主机中的应用进程相互通信。
通信的真正端点并不是主机而是主机中的进程。端到端的通信是应用进程之间的通信。运输层有一个重要功能:复用和分用。
复用指在发送方不同的应用进程都可以使用同一个运输层协议传送数据
分用指接收方的运输层在剥去报文的首部后能够把这些数据正确交付目的应用进程。
网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
运输层的作用:向它上边的应用层提供通信服务
运输层的协议:用户数据报协议UDP和传输控制协议TCP
运输层的设备:网关
运输层是通过首部的端口号来确定该把数据传给哪个端口的
TCP对应的协议:
(1) FTP:定义了文件传输协议,使用21端口。
(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。
UDP对应的协议:
(1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
(3) TFTP(Trival File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。
UDP和TCP的区别
TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
应用层报文 应用层
↓
UDP首部+UDP用户数据报的数据部分 运输层
↓
IP首部+IP数据报的数据部分 IP层
UDP主要特点:
(1)UDP是无连接的,发送数据之前不需要建立连接,减少了开销和发送数据之前的时延。
(2)UDP使用尽最大努力交付
(3)UDP是面向报文的
(4)UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。
(5)UDP支持一对一、一对多、多对一和多对多的交互同信。
(6)UDP的首部开销小,只有8字节,TCP20字节。
TCP和UDP的区别
1,从可靠性上来说
TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
2,从报文的传递形式来说
TCP传输单位称为TCP报文段,是一种无结构的字节流。UDP传输单位称为用户数据报。
3,从传输速度上来说
TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作
每个UDP报文分UDP报头和UDP数据区两部分。报头由四个16位长(2字节)字段组成,分别说明该报文的源端口号、目的端口号、数据报长度以及校验值,每个域各占用2个字节。
IP层接收由更低层发来的数据包,并把该数据包发送到更高层—TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
TCP首部+TCP报文段的数据部分
↓
IP首部+IP数据报的数据部分
发送缓存用来暂时存放:
(1)发送应用程序传送给发送发TCP准备发送的数据;
(2)TCP已发送出但尚未收到的确认的数据。
接受缓存用来暂时存放:
(1)按序到达的、但尚未被接受应用程序读取的数据;
(2)未按序到达的数据。
流量控制就是让发送方的发送率不要太快,要让接受方来得及接收。利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。发送方的发送窗口不能超过接收方给出的接收窗口的数值。TCP的窗口单位是字节,不是报文段。
TCP连接三次握手
1.客户端发送SYN=1,seq=x给服务器端
2.服务器端发送SYN=1,ACK=1,seq=y,ack=x+1给客户端
3.客户端发送ACK=1,seq=x+1,ack=y+1给服务器端
为什么要三次握手:防止失效的连接请求报文段突然又传送到服务器。
TCP连接四次挥手
1.客户端发送FIN=1,seq=u给服务器端
2.服务器端发送ACK=1,seq=v,ack=u+1给客户端
3.服务器端发送FIN=1,ACK=1,seq=w,ack=u+1给客户端
4.客户端发送ACK=1,seq=u+1,ack=w+1给服务器端
SYN:请求同步标志,seq:序列号,ACK:确认标志,ack:确认号FIN:结束标志
设置2MSL时间的问题
1,为了保证A发送的最后一个ACK能到达B。因为这个ACK可能丢失,因为使B收不到确认,无法关闭,有个这段时间,B就可以超时重传FIN+ACK,然后A就重传一次ACK,然后重置定时器。最后A,B都能顺利关闭,如果没有这段时间,A发送完ACK就关闭,B不一定能顺利关闭。
2,防止“已失效连接请求报文段”出现在本连接中,A在发送完最后一个ACK后,再经过2MSL,就可以使本链接持续的时间内所产生的所有报文段都在网络中消失,这样就可以使下一个连接中不再出现这种旧的请求报文段
应用层
应用层是为了解决某一类应用问题
DNS域名系统:将URL转换为IP地址。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址
任何一个连接在因特网上的主机或者路由器,都是有一个唯一的层次结构的名字,即域名,域可以分为顶级域、二级域、三级域等等。域名中的标号都是由英文字母和数字组成,每一个标号不超过63个字符不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的顶级域名则写在最右边。由多个标号组成的完整域总共不超过255个字符。
顶级域名服务器分为三大类:
国家顶级域名nTLD:如cn,us,uk….
通用顶级域名gTLD:如com,net,org……
基础结构域名:这种域名只有一个,即arpa,用于反向域名解析,因此又称为反向域名。
域名服务器: 根域名服务器 、顶级域名服务器TLD 、权限域名服务器 、本地域名服务器
主机向本地域名服务器的查询一般采用递归查询。如果主机所询问的本地域名服务器不知道所要解析的目的域名ip地址,那么本地域名服务器就以DNS客户的方式(代理主机进行查询)代替主机向其他根域名服务器继续发出查询请求报文,而不是让主机自己进行下一步查询。
本地域名服务器向根域名服务器的查询通常采用迭代查询
当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息,包括:指定的DNS域名,指定的查询类型,DNS域名的指定类别。基于UDP服务,端口53. 该应用一般不直接为用户使用,而是为其他应用服务,如HTTP,SMTP等在其中需要完成主机名到IP地址的转换。
基于TCP的有FTP、Telnet、SMTP、HTTP、POP3
基于UDP的有TFTP、DHCP、SNMP
其中DNS既可以基础TCP,也可以基于UDP
FTP文件传输协议:网络文件系统NFS,允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。,它使用TCP来确保文件传输的可靠性
TFTP简单文件传输协议:TFTP可用于UDP环境。TFTP代码所占内存较小。这对较小的计算机或某些特殊用途的设备是很重要的,这些设备不需要硬盘,只需要固化TFTP和UDP以及IP的小容量只读存储器即可。
TFTP主要特点:
(1)每次传送的数据报文中有512字节的数据,但最后一次可不足512字节。
(2)数据报文按序编号,从1开始。
(3)支持ASCⅡ码或二进制传送。
(4)可对文件进行读或写。
(5)使用简单的首部。
远程终端协议TELNET又称为终端仿真协议。它定义了数据和命令应怎样通过因特网,这些定义就是所谓的网络虚拟终端NVT。所有的通信都是用8位一个字节,在运转时,NVT使用7位ASCⅡ码传送数据,而当高位置1时用作控制命令。
万维网使用统一资源定位符URL来标志万维网上的各种文档。使用超文本传送协议HTTP实现交互。http是一个应用层协议,它使用TCP连接进行可靠的传送。
统一资源定位符URL:<协议>://<主机>:<端口>/<路径>
超文本传输协议http是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
http是面向事务的应用层协议,http协议是无状态的。
http有以下缺点:
1、通信使用明文不加密,内容可能被窃听
2、不验证通信方身份,可能遭到伪装
3、无法验证报文完整性,可能被篡改
http1.0和http2.0的区别
1.HTTP2使用的是二进制传送,HTTP1.X是文本(字符串)传送。
HTTP1.X使用的是明文的文本传送,而HTTP2使用的是二进制传送,二进制传送的单位是帧和流。帧组成了流,同时流还有流ID标示,通过流ID就牵扯出了第二个区别
2.HTTP2支持多路复用
因为有流ID,所以通过同一个http请求实现多个http请求传输变成了可能,可以通过流ID来标示究竟是哪个流从而定位到是哪个http请求
3.HTTP2头部压缩
HTTP2通过gzip和compress压缩头部然后再发送,同时客户端和服务器端同时维护一张头信息表,所有字段都记录在这张表中,这样后面每次传输只需要传输表里面的索引Id就行,通过索引ID就可以知道表头的值了
4.HTTP2支持服务器推送
HTTP2支持在客户端未经请求许可的情况下,主动向客户端推送内容
请求报文的主要特点:请求报文的第一行“请求行”只有三个内容,即方法,请求资源的URL,以及http的版本。
响应报文的主要特点:响应报文的第一行就是状态行。包含三个内容,http版本,状态码,以及解释状态码的简单短语
状态码的含义
1XX Informational(信息性状态码)
2XX Success(成功状态码)。例如:200 OK 表示从客户端发来的请求在服务器端被正常处理了。
3XX Redirection(重定向状态码)例如:302,客户请求的文档转移到了一个新的地址,请求被重定向了。
4XX Client Error(客户端错误状态码)。例如:404 Not Found 该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。
5XX Server Error(服务器错误状态码)。例如:500 Internal Server Error 该状态码表明服务器端在执行请求时发生了错误。
HTTP中的PUT,DELETE,POST,GET就对应着对这个资源的”增、,删、改、查“4个操作。
PUT:在给定的URL下存储一个文档。
DELETE:删除给定的URL所标志的资源。
POST:给服务器添加信息(如注释)。
GET:请求读取由URL所标志的信息。
POST 与 GET 的区别
1.从功能上来说
Get是向服务器发索取数据的一种请求,是安全的和幂等的,POST是修改服务器上的数据,是向服务器提交数据的一种请求。
所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。
幂等的意味着对同一URL的多个请求应该返回同样的结果。
2.从使用形式上来说
GET请求的数据会附在URL之后,POST把提交的数据则放置在是HTTP包的包体中。
3.从安全性上来说
Get请求的数据因为会附在url之后,所以是不安全的,post数据则放置在http包体里,所以是安全的
4.从数据量上来说
GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据
总的来说,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求。
电子邮件系统有三个主要组成构件:用户代理、邮件服务器,以及邮件协议(包括邮件发送协议,如SMTP,邮件读取协议,如POP3)。用户代理和邮件服务器都要运行这两种协议。