HTTP 协议中GET和POST到底有哪些区别
HTTP 定义了与服务器交互的不同方法,最常用的有4种,Get、Post、Put、Delete,如果我换一下顺序就好记了,Put(增),Delete(删),Post(改),Get(查),即增删改查,下面简单叙述一下:
1)Get, 它用于获取信息,注意,他只是获取、查询数据,也就是说它不会修改服务器上的数据,从这点来讲,它是数据安全的,而稍后会提到的Post它是可以修改数据的,所以这也是两者差别之一了。
2) Post,它是可以向服务器发送修改请求,从而修改服务器的,比方说,我们要在论坛上回贴、在博客上评论,这就要用到Post了,当然它也是可以仅仅获取数据的。
3)Delete 删除数据。可以通过Get/Post来实现。用的不多,暂不多写,以后扩充。
4)Put,增加、放置数据,可以通过Get/Post来实现。用的不多,暂不多写,以后扩充。
下面简述一下Get和Post区别:
1) GET请求的数据是放在HTTP包头中的,也就是URL之后,通常是像下面这样定义格式的,(而Post是把提交的数据放在HTTP正文中的)。
login.action?name=hyddd&password=idontknow&verify=%E4%BD%E5%A5%BD
a,以 ? 来分隔URL和数据;
b,以& 来分隔参数;
c,如果数据是英文或数字,原样发送;
d,如果数据是中文或其它字符,则进行BASE64编码。
2)GET提交的数据比较少,最多1024B,因为GET数据是附在URL之后的,而URL则会受到不同环境的限制的,比如说IE对其限制为2K+35,而POST可以传送更多的数据(理论上是没有限制的,但一般也会受不同的环境,如浏览器、操作系统、服务器处理能力等限制,IIS4可支持80KB,IIS5可支持100KB)。
3)Post的安全性要比Get高,因为Get时,参数数据是明文传输的,而且使用GET的话,还可能造成Cross-site request forgery攻击。而POST数据则可以加密的,但GET的速度可能会快些。
所以综上几点,总结成下表:
操作方式 |
数据位置 |
明文密文 |
数据安全 |
长度限制 |
应用场景 |
GET |
HTTP包头 |
明文 |
不安全 |
长度较小 |
查询数据 |
POST |
HTTP正文 |
可明可密 |
安全 |
支持较大数据传输 |
修改数据 |
-----------------------------------------本文部分数据来于网络-------------------------------------------
HTTP 协议中GET和POST到底有哪些区别相关推荐
- php中include和require,在PHP中include和require到底有什么区别呢?
在PHP中include和require到底有什么区别呢?看这里的例子就知道了 include.php3的运行结果是: 这是inc1.inc文件中的一个变量的值! 这是inc2.inc文件中的一个变量 ...
- 一个空值_MySQL数据库表中 NULL 和空值到底有什么区别呢?
NULL也就是在字段中存储NULL值 空字符串值也就是字段中存储空字符('') 我们来通过测试来看看 他们彼此的区别: 占用空间区别 mysql> select length(NULL), le ...
- insert into 插入空值_MySQL数据库的表中 NULL 和 空值 到底有什么区别呢
浅谈 NULL 和 空值的区别 NULL也就是在字段中存储NULL值 空字符串值也就是字段中存储空字符('') 我们来通过测试来看看 他们彼此的区别: 1.占用空间区别 mysql> selec ...
- db2中null和空值的区别_MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! 知乎@极客小俊,官方首发原创文章 浅谈 NULL 和 空值的区别 NULL也就是在字段中 ...
- db2中null和空值的区别_MySQL数据库的表中 NULL和空值 到底有什么区别呢?
作者:极客小俊 一个专注于web技术的80后 你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人! NULL也就是在字段中存储NULL值 空字符串值也就是字段中存储空字符('') 我们来通 ...
- yum是干什么的_CentOS中rpm和yum到底有什么区别?
2020/5/19 ( Linux 软件安装的学习链接:http://c.biancheng.net/view/814.html ) 一.rpm 是什么? rpm 全称 Red-Hat Pa ...
- AHB协议中hreadyout和hready_in的区别
AHB协议中slave的HREADYOUT和HREADYIN的区别 hreadyout:用于指示slave准备好接收master发过来的一笔传输: hreadyin:用于指示slave的上一笔传输是否 ...
- java 中 print、println 与 printf 的区别
1.前言 如果你是 java 的初学者,那相信你一定会有过疑惑,就是 java 中三大输出方式到底有什么区别.所以,小编就通过具体实例来详细来聊一聊. 2.java 的输出方式 Java 的输出方式一 ...
- TCP/IP协议中的一些常用端口简单讲解
(源自http://bbs.360.cn/3232114/17010996.html) 那么TCP/IP协议中的端口指的是什么呢?如果把IP地址比作一间房子 ,端口就是出入这间房子的门.真正的房子只有 ...
最新文章
- OpenAI首次推出数学定理推理模型GPT-f,23个推导结果被专业数据库收录
- linux使用wget下载https开头url的文件
- 未来软件是什么样呢?数据库篇(转载)
- VTK:PolyData之ConnectivityFilter_SpecifiedRegion
- [数据库] MySQL基础知识之日期判断及添加排序序号
- 老师,你和我的文具撞衫了!
- Spring事务操作-事务
- VI操作--跳到最后一行和跳到最后一行的最后一个字符
- Sublime Text 3 设置
- python网络爬虫(一):网络爬虫科普与URL含义
- android airplay工具开发,Android AirPin/AirPlay手机版使用图文教程
- 射频S11与VSWR换算
- 百度 android 笔试题库,百度科目一考试题库
- 利用FDTD进行超表面的仿真(一)——验证PB相位和转换效率的计算
- 【设计模式】工厂模式的作用?工厂模式有什么优点?
- element ui el-table动态生成表头(v-for/v-if)导致的高度塌陷(少一截)的解决办法
- 通过UC开发者调试工具调试webView
- python 编程查看 Excel 电子表(真香)
- QSettings介绍与使用
- tp5结合es6.x的基本用法