GET和POST请求的区别
Posted yjf713
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GET和POST请求的区别相关的知识,希望对你有一定的参考价值。
POST和GET是什么?
POST和GET是HTTP请求的两种方式,都可实现将数据从浏览器向服务器发送带参数的请求。
HTTP请求底层协议都是TCP/IP,所以两者没有本质的区别。
HTTP
HTTP是什么
HTTP:超文本传输协议。所有的WWW文件都必须遵守这个标准。
HTTP向服务器发送请求是TCP连接。HTTP服务器收到请求后向客户端返回一个状态行 比如“HTTP/1.1 200 OK”和
HTTP请求的组成
HTTP由四部分组成:
- 请求行(request line):用于说明请求类型、要访问的资源路径、HTTP版本号(GET /index.html HTTP/1.1)
- 请求头部(header):用于说明服务器要使用的附加信息
- 一个空行
- 请求数据(body):任意添加的数据
GET方法
GET是获取的意思,顾名思义就是获取信息。
GET是默认的HTTP请求方法。
GET方法把参数通过key/value形式存放在URL里面,如果参数是英文数字原样显示,如果是中文或者其他字符加密(Base64)URL长度一般有限制所以GET方法的参数长度不能太长。由于参数显示再地址栏所以不安全,一般需要保密的请求不使用GET。
POST方法
POST是邮件的意思,顾名思义就像一封信一样将参数放在信封里面传输。它用于修改服务器上的数据,一般这些数据是应该保密的,就像信件一样,信的内容只能收信的人看见。例入当用户输入账号和密码登录时账号和密码作为参数通过HTTP请求传输到服务器,这时候肯定不能用GET方法将账号密码直接显示再URL上,这时候就应该用POST方法保证数据的保密性。
POST和GET的区别
1. get是从服务器上获取数据,post是向服务器传送数据。
2. GET请求把参数包含在URL中,将请求信息放在URL后面,POST请求通过request body传递参数,将请求信息放置在报文体中。
3. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
4. get安全性非常低,get设计成传输数据,一般都在地址栏里面可以看到,post安全性较高,post传递数据比较隐私,所以在地址栏看不到, 如果没有加密,他们安全级别都是一样的,随便一个监听器都可以把所有的数据监听到。
5. GET请求能够被缓存,GET请求会保存在浏览器的浏览记录中,以GET请求的URL能够保存为浏览器书签,post请求不具有这些功能。
6. HTTP的底层是TCP/IP,GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。
7.GET产生一个TCP数据包,对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);POST产生两个TCP数据包,对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据),并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。
还有哪些HTTP请求方法
GET和POST是最常用的HTTP请求方式。还有其他的请求方式。我没用过其他的,我只说我知道的把。以后遇到了再补充。
- PUT:
- HEAD
- DELETE
- 。。。
URI和URL的区别?
URI:统一资源标识符,在世界范围内唯一标识并定位信息资源。URI有两种形式:URL和URN。
URL:统一资源定位符。URL描述了一台特定服务器上某资源的特定位置。(几乎所有的URLI都是URL。)
什么是代理?
代理是位于客户端和服务器之间的HTTP中间实体。接收所有客户端的HTTP请求,并将这些请求转发给服务器(可能会对请求进行修改之后转发)。
以上是关于GET和POST请求的区别的主要内容,如果未能解决你的问题,请参考以下文章