经常看到url中很长的一串请求参数,为什么不采用post方式?



个人记录:2018年,工作的第6到7个年头。
重点研究自己不太擅长的技术:分布式、高并发、大数据量、数据库优化、高性能、负载均衡等。
刷题是一种态度,是一种好习惯。
我刷题,我骄傲。




题目:经常看到url中很长的一串请求参数,为什么不采用post方式?
出处:http://ifeve.com/question/%e7%bb%8f%e5%b8%b8%e7%9c%8b%e5%88%b0url%e4%b8%ad%e5%be%88%e9%95%bf%e7%9a%84%e4%b8%80%e4%b8%b2%e8%af%b7%e6%b1%82%e5%8f%82%e6%95%b0%ef%bc%8c%e4%b8%ba%e4%bb%80%e4%b9%88%e4%b8%8d%e9%87%87%e7%94%a8post/


个人看法
get方式,是浏览器默认方式,访问简单,比如点击一个链接,直接就跳转了。
如果用post,还需要构造表单,程序实现麻烦,用户体验还会收到“不能重复提交表单”等提示,麻烦很多。
get方式,用户直接看到url和参数,复制粘贴,可以方便收藏、转发,而post不行。


这个问题的本质是,get和post的区别,get的优势。


网上找的资料:
http://www.w3school.com.cn/tags/html_ref_httpmethods.asp


get缓存、历史记录、书签。


GET 方法
请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:
/test/demo_form.asp?name1=value1&name2=value2
有关 GET 请求的其他一些注释:
GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据


POST 方法
请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
有关 POST 请求的其他一些注释:
POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求


网友看法
方腾飞 
这个原因很多。在很多场景下,用GET实现起来更简单,也足够了,比如并发网给其他网站引流需要加些参数,
这样方便其他网站统计流量来源,如果用POST,并发网就的做一个Post提交,会比较麻烦。


割眼看世界
1 浏览器地址栏打开的默认就是GET,所以链接用GET很方便。
2 POST的提交需要表单或js提交,麻烦。
3 GET可以使用缓存
4 GET有利于SEO


华仔的逆袭
Get方式的简洁和缓存比较能说服我
 
### 1、Http的状态码 HTTP状态码是一个用于表示服务器响应客户端请求的代码段,它由三位数字组成,其第一位数字给出了返回信息的大致类别: - **1xx**:指示请求已被接受,继续处理(非最终响应) - **2xx**:成功(请求已成功接收并理解,并进行了正确的处理) - **3xx**:重定向(进一步操作需要采取额外的行动,通常通过URI路径) - **4xx**:客户端错误(请求包含语法错误或者无法完成请求,常见如`400 Bad Request`) - **5xx**:服务器错误(服务器未能满足请求) 一些常见的状态码包括: - `200 OK`:请求已成功处理。 - `201 Created`:已经创建了一个新的资源,并包含了所创建资源的信息。 - `204 No Content`:请求已成功处理,但没有新内容返回(例如,在执行删除操作后)。 ### 2、Http命令及其区别 - **GET**: 主要用于从服务器获取数据。URL可以包含查询字符串来指定获取的数据属性,适用于检索数据而非修改数据的场景。 - **POST**: 用于向指定的资源提交数据进行处理请求(例如,用户注册、表单提交等)。数据作为实体的内容发送,并存储在服务器上。 ### GET 和 POST 的区别: 1. **目的**:GET 用于检索信息,而 POST 用于更新或提交信息到服务器。 2. **安全性**:GET 请求参数会直接显示在 URL 上,对于敏感信息不太安全;而 POST 请求不会在 URL 显示,更安全。 3. **数据量限制**:理论上,GET 请求URL 长度受限于浏览器和服务器的支持,通常不超过几千字节;POST 请求对数据长度的限制相对宽松,不受 URL 长度的影响。 4. **缓存**:GET 请求的结果通常可以被浏览器缓存,而 POST 请求结果一般不会被缓存。 5. **反向追踪**:GET 请求可以很容易地通过 URL 进行反向追踪,这在日志分析或调试时有用;相反,POST 请求由于其数据隐藏特性使得追踪较为困难。 ### 3、Http请求的Content-Type有哪些? Http请求的Content-Type主要用于指明请求体的数据类型。常见的Content-Type包括但不限于: - `application/x-www-form-urlencoded`:这是最常见的形式化编码方式,常用于HTML表单提交。 - `multipart/form-data`:用于文件上传和复杂表单,支持文件、二进制数据等。 - `text/plain`:文本数据,简单纯文本。 - `application/json`:JSON格式的数据,广泛应用于API交互。 ### 4、Http应答的Content-Type有哪些? Http应答的Content-Type用于指明响应体的数据类型。常用的Content-Type包括: - `text/html`:网页内容,通常是由HTML文档构成的。 - `application/json`:JSON格式的数据,常用于API返回的数据。 - `image/jpeg`, `image/png`等:图像数据。 - `video/mp4`, `audio/mpeg`等:媒体数据。 - `application/pdf`:PDF文件。 以上内容涵盖了HTTP的基本概念,如果你有其他问题,欢迎提问!---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值