get和post的区别
1 HTTP:超文本传输协议(全称:HyperText Transfer Protocol),是一个简单的请求-响应协议,它通常运行在TCP之上。HTTP的标准制定由万维网协会(W3C)和互联网工程任务组(IETF)进行协调,最终在1999-06月发布的了RFC 2616,定义了HTTP协议——HTTP 1.1。
1.1 http的请求方式
http1.0有3种请求方式:get、post、head
http1.1有8种请求方式:get、post、head、delete、put、options、trace、connect (在http1.0的版本上增加了5种)
1.2 get和post的区别
GET的特点
- get的作用是在服务器上获取数据
- get请求实体数据是跟在URL后面以“?”连接,各个变量之间使用“&”连接
- get的数据传输量只有2k,受到URL的长度限制,导致了它的传输量特别小
- get是很不安全的,它会将自身的参数暴露在URL中,自身的参数被一览无余,无任何秘密可言。如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>get</title>
</head>
<body>
<table width="530">
<tr>
<td align="center">
<form action="#" method="get">
设置密码:<input type="password" name="password" style="height: 30px">
</td>
</tr>
</table>
<table width="1000">
<tr>
<td width="480" align="center" height="50">
<form action="#" method="get">
<input type="submit" name="注册"
value="注册" style="height: 40px;width: 215px">
</td>
<td> </td>
</tr>
</table>
</body>
</html>
POST的特点
- post的请求方式是向服务器上传递数据
- post传输数据没有限制,可以大量的传送,从而导致了它的效率没有get高
- 安全性高,不会在URL中暴露自身信息,它的所有操作对用户来说都是不可见的。如下:
-
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>post</title> </head> <body> <table width="530"> <tr> <td align="center"> <form action="#" method="post"> 设置密码:<input type="password" name="password" style="height: 30px"> </td> </tr> </table> <table width="1000"> <tr> <td width="480" align="center" height="50"> <form action="#" method="get"> <input type="submit" name="注册" value="注册" style="height: 40px;width: 215px"> </td> <td> </td> </tr> </table> </body> </html>
- 自身的所有参数完全不会暴露在URL中,安全性比get相对高出很多
小结: get和post因为各自在http上的协议规定的不同,所以早就它们各自的作用也就有所区别,我们所要做的就是要合理区分从而达到合理的应用