文档章节

HTTP - GET和POST的区别

huangjacky
 huangjacky
发布于 2014/10/12 12:21
字数 611
阅读 17
收藏 0
点赞 0
评论 0

网上有很多文章介绍这两种HTTP请求的区别,我也不懂,主要还是看了一些文章,在这里写下一些笔记。


  1. 语义不同
    在HTTP协议中,最初规定GET是用来查询或者获取资料,只读,POST用于修改数据,可写。因此可以看到两种方式的使用场景上就有很大的区别,在RESTful中更是强调了这两种HTTP请求方式目的。规定是死的,人是活的,所以很多人为了方便GET也用于修改数据,比如删除某个记录,这样很容易被CSRF,题外话。
  2. 发送数据
    HTTP协议中,GET和POST都可以先服务器发送数据,GET的提交的数据只能在URL中表示,而URL只允许部分可见字符,其他字符都需要转换%xx的形式;POST提交的数据可以在URL中,也可以在BODY里,在BODY里面的数据可以是URLEncoded的普通数据,同样是可以是直接的二进制流数据,这样可以剩下不少流量。一个字节变成%xx,长度就是原来的三倍了。
  3. 长度限制
    在HTTP协议中,GET和POST提交的数据长度是没有限制的。但是一般的浏览器和服务器软件都会限制URL的长度,因为一般服务器会把URL当成字符串来进行使用,一个超长的字符串肯定会影响到服务器的性能。而POST提交数据虽然会比GET的数据大很多,但是一般服务器还是会限制其大小,在nginx中,有一个配置项为client_max_body_size就是来设置POST的body数据大小的,有兴趣的朋友可以试一下。
  4. 安全性
    安全性和这两种方式没有任何关系。数据在HTTP上面走,肯定会被别人嗅探到,关键还是看你对数据的加密程度和算法了。上面说道了GET进行一些写操作容易被csrf,其实只要在GET请求中带上一些防御csrf的措施,那就不会被CSRF攻击了。反之如果使用的是POST方式,但是没有部署anti-CSRF方案的话,同样会被csrf攻击的。

好了,我的笔记写完了,有兴趣的朋友可以拍砖。哈哈,交流学习下。

本文转载自:http://www.cnblogs.com/huangjacky/p/4018139.html

共有 人打赏支持
huangjacky
粉丝 5
博文 19
码字总数 0
作品 0
深圳
高级程序员
HTTP Get和Post的区别 - 说点别的

最近面试被问到get和post的区别,因为觉得这个问题太基础了,勉强的回答了一下(面试没过),回去的路上突然觉得压根没弄明白具体的区别是什么。下面开始分析有不对的地方欢迎指正! 常见区别:...

尚小胖
2016/12/06
35
0
转:99%的人理解错 HTTP 中 GET 与 POST 的区别

转:https://www.oschina.net/news/77354/http-get-post-different 作者:王练 侵删 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是...

森林范丶
07/04
0
0
99%的人理解错 HTTP 中 GET 与 POST 的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和...

王练
2016/09/22
31K
85
99%的人都理解错了HTTP中GET与POST的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和...

油焖菠菜
2016/08/18
58
0
你敢在post和get上刁难我,就别怪我装逼了

> 掘金编辑提醒:本文疑似有误,参考 听说「99% 的人都理解错了 HTTP 中 GET 与 POST 的区别」 之前好几次面试都被问到post和get有什么区别,肯定很多同学和我一样说了一大堆什么post比get安...

再这么说就哭了呦!
2017/11/03
0
0
99%的人都理解错了HTTP中GET与POST的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和...

颓废的幻想者
2016/08/19
109
0
GET和POST有什么区别?及为什么网上的多数答案都是错的。

如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。 这个答案好像并不是他想要的。于...

2shou2shou
2013/02/26
0
6
IOS http请求的get 和 post的请求的区别

从表面的意思看get 和 post的区别get就是获取数据,post就是发送数据。这个是误区。其实两者都可以的,在IOS向服务器发送请求里面可以带参数。 那么这些误区是怎么出现的呢?先看看一下对htt...

人魔七七
2012/09/03
0
0
接口测试前需要了解的一些常识

前提 之前参加校长的接口测试的相关课程,本文主要是记录一下接口测试相关基础知识,不涉及接口测试代码相关,可以说是一个学习笔记。 工欲善其事,必先利其器,打好基础真的很重要!!!! ...

迈阿密小白
2017/10/01
0
0
Web术语—request、forward、redirect、error、GET、POST、U...

1.浏览器的刷新与转到的区别 2.Web环境下request、forward、redirect、error之间的关联与区别 3.Web环境下请求方式GET与POST的区别 4.URL与URI的区别 关于HTTP请求流程参见下面的URL地址: ...

回忆在昨天
2012/10/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
9分钟前
0
0
单点登录的设计,从单域名到多域名(经验分享)

个人实践总结,最初的的需求,多个产品线都在同一个根域名下面。 独立的用户中心分离,单独负责用户登录和用户信息获取、变更等处理逻辑。 第一步,用户登录成功,分配给用户一个memToken(令...

小海bug
10分钟前
0
0
合格前端第十二弹-TypeScript + 大型项目

写在前面 TypeScript 已经出来很久了,很多大公司很多大项目也都在使用它进行开发。上个月,我这边也正式跟进一个对集团的大型运维类项目。 项目要做的事情大致分为以下几个大模块 一站式管理...

qiangdada
14分钟前
0
0
编程学习之如何在Node.js中优化服务器端渲染?[图]

编程学习之如何在Node.js中优化服务器端渲染?[图] 在 Airbnb,我们花了数年时间将所有前端代码迁移到 React 架构,Ruby on Rails 在 Web 应用中所占的比例每天都在减少。实际上,我们很快会...

原创小博客
16分钟前
0
0
gradle学习笔记

相关文档 适合新手的 gradle 自学教程合集 Gradle教程

OSC_fly
30分钟前
0
0
Virtual Serial Port - RFC2217

Virtual Serial Port for Linux RFC-2217 The COM Port Control Protocol pyserial - RFC 2217 NetSerial - Windows Telnet COM Port - RFC Official Using Python, How do I make a virtual......

zungyiu
37分钟前
0
0
全球的IPv6部署急剧增加,中国进度较慢

导读 全球的IPv6部署继续增加,但中国在IPv6方面还需要努力,从部署图上分析,中国几乎没有几个地方是普及IPv6的。这6年来,自世界IPv6发布以来,全球网络和服务提供商的IPv6部署水平急剧增加...

问题终结者
41分钟前
1
0
好看的电影记录

星际迷航三 狂暴之路 新木乃伊 黑夜传说 铁血战士2

xd03122049
44分钟前
0
0
记录Yii2框架开发遇到微信错误提示

转载地址 记录Yii2框架开发遇到微信错误提示 微信公共号开发,提示“该公众号暂时无法提供服务,请稍后再试”,如何解决? 以前使用Yii框架的时候,并没有像Yii2,以前的Yii框架似乎用起来在...

durban
47分钟前
1
0
LSM树(Log-Structured Merge Tree)存储引擎浅析

其实每一种数据库,它都是一种抽象的数据结构的具体实现。 随着rocksDB(facebook的),levelDB(google的),以及我们熟知的hbase,他们都是使用的LSM树结构的数据库。 它的核心思路其实非常...

算法之名
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部