20170330_请说出HTTP 的两种协议GET 方式和POST 方式的区别
1、请说出HTTP 的两种协议GET 方式和POST 方式的区别?
(1)GET 方式和POST 方式,是HTTP 协议中与服务器进行交互的两种方式。
(2)我们知道,URL 地址,是用于描述网络上的一个资源,而get、post、put、delete 四个运算符分别对应着对这个资源的查询、修改、增加、删除操作。其中,GET 方式一般用于对这个资源的查询与获取。POST 方式一般用于对这个资源进行更新处理。
(3)它们的区别在于:
- GET 方式提交的数据会放在URL 地址后面,URL 地址与传输的数据用问号?分割开,其中的参数用 & 符号相连。POST 方式提交的数据不会连接在URL 地址后面,而是把它们放在HTTP 包的表单的body 中。
- 因为Web 浏览器对URL 的长度有限制,因此GET 方式传输的数据有大小限制。而POST 方式对传输的数据没有大小限制。
- GET 方式需要通过地址栏传递值,会带来安全性问题。POST 方式需要通过提交表单传递值,不会带来安全性问题。
2、TCP 的长连接和短连接:
(1)TCP 连接:
a、当网络通信采用TCP 协议时,在真正的读写数据之前,server 端和client 端之间必须事先建立一个TCP 连接。
b、当读写数据完成后,双方不再需要这个TCP 连接的时候,它们可以释放这个TCP 连接。
c、TCP 连接的建立需要 3 次握手,而TCP 连接的释放则需要 4 次握手,所以说,每个TCP 连接的建立都是需要消耗资源、消耗时间的。
(2)TCP 短连接:
a、在建立TCP 连接之后,客户端和服务器端就可以进行数据传输了。
b、现在假设,客户端向服务器端发送了一个消息,服务器端返回给客户端一个确认应答信号ACK,以说明自己已经接收到对端发送的数据了,这时,一次读写操作就完成了。
c、此时,双方中的任何一方都可以主动发起 close 操作来断开这个连接(不过通常都是由客户端主动发起close 操作)。
d、从这个例子中可以看到,一般情况下,TCP 短连接时,双方之间只进行一次数据的读写操作。
这样的优点就是:TCP 连接便于管理,存在的TCP 连接都是有用处的,不会浪费资源。
PS:简单来说就是:建立连接 ---> 进行一次数据传输 ---> 关闭连接。
(3)TCP 长连接:
a、同样的,在建立TCP 连接之后,客户端和服务器端就可以进行数据传输了。
b、但是,当一次读写操作完成之后,它们之间的连接并不会主动被断开,后续的数据读写操作依然使用这个TCP 连接。
c、这样的缺点就是:TCP 连接之后,不管是否在使用它,它都会保持连接状态,这就会导致对资源的浪费,同时安全性也较差。
PS:简单来说就是:建立连接 ---> 一次传输数据---> 二次传输数据---> 三次传输数据---> ··· ··· ---> 关闭连接。
3、IP 地址、MAC地址、端口号的区别:
(1)IP 地址:(32位)
a、IP 地址,指的是使用TCP/IP 协议时指定给主机的32位地址,它用来唯一标识一台主机。
b、IP地址是使用 点分十进制 的形式表示,比如:172.3.68.49 就是一个IP 地址。
c、IP 地址由两部分组成。一部分是网络地址,用来进行路由选择;一部分是主机地址,用来进行在网络内部寻找一个单独的特定的主机。另外,分配给这两部分的 位数 是根据IP 地址的分类来的,包括A类、B类、C类、D类四种。
d、一个IP 地址,使得来自源地址的数据通过路由选择而传递到目的地址变为可能。
(2)MAC地址:(48位)
a、在OSI 参考模型中,有七层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
b、其中的第二层数据链路层又分为两小层,其中之一是逻辑链路层,其中之二便是MAC层,也就是介质访问控制层。
c、这个介质指的就是实际的物理线路,MAC地址也称之为物理地址,与网络无关,就是生产厂家用来标识这些硬件的。MAC地址一般情况下是不可改变,也不可由用户自己设定。
(3)端口号:
a、端口号是用来在一台主机上识别不同的应用程序的。
b、也就是说,一台主机上可以同时运行多个应用程序,那么当这台主机接收到消息后,这个消息送给哪一个应用程序呢?这时就需要端口号来进行寻找了。
c、端口号有两种,一种是固定的端口号,比如HTTP、FTP、TELENT等这些被广泛使用的协议,它们就被分配了固定的端口号,仅供它们自己使用,其他协议使用就是非法的。另一种就是动态分配的端口号,这个时候就需要服务器监听端口号了。