【探索】Get与Post

简介: Http,url,get,post的关系:Http协议通过定义get post等请求,对url地址描述的资源进行增删改查。

 Http,url,get,post的关系:Http协议通过定义get post等请求,对url地址描述的资源进行增删改查。


一、url:


百度解释:Url全拼:UniformResource Locator


1.1 统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。


1.2 基本URL包含:模式(或称协议)、服务器名称(或IP地址)、路径和文件名,


20160824194454007.png



再比如我们的百度首页:https://www.baidu.com/?tn=57095150_1_oem_dg

完整的、带有授权部分的普通统一资源标志符语法看上去如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志。


二、Get和Post


之前一直听说get和post是提交from表单的两种形式,后来通过查阅资料,有了些不同的认识。

  http对服务器有八种请求方式:

20160824194548393.png


以上的八种方式中,最常用的四种方式可以与数据库增删改查操作对应:


增——Put,删——Delete,改:Post,查:Get。所以,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。


2.1 Get用于信息获取应该是安全的和幂等的。


(1).所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。因为使用get方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器,而且能够被缓存,会保存在浏览器的浏览记录中。所以,GET可能会被网络蜘蛛等随意访问,导致信息泄露。所以,有的时候我们会对输入的查询命令用base64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。


(2).幂等:对同一URL的多个请求应该返回同样的结果。(百度:任意多次执行所产生的影响均与一次执行的影响相同)


2.2 Post表示可能修改服务器上的资源的请求


  post是通过HTTP post机制,将表单内各个字段与其内容放置在HTMLHEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。


  GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中


2.3 提交方式


  如果表单以get方式将数据发送到服务器,在服务器接收数据的方式:


  stringuserName=context.Request.QueryString["txtName"];


  如果数据以post方式提交,表单中的数据全部放在请求报文的请求体中,            txtName=itcast&txtPwd=123;


  在服务器文件接收:userName=context.Request.Form["txtName"];


2.3 注意


2.3.1 POST的安全性要比GET的安全性高,这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-siterequest forgery攻击。


2.3.2 在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;


三、总结


  Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发!


参考文献链接:


http://www.cnblogs.com/igeneral/p/3641574.html


http://wenku.baidu.com/link?url=Fj-0np1rp9N1LHuOdxO684H6ziHG4u50ZB4q1Gc3AFRV2tFVPsboFKuAaYYugdTkYLSMmmOHsrbzwXe9qCUVPtix15Sb5E4cZHaQdJoPJIe


http://www.cnblogs.com/igeneral/p/3641574.html


http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

http://jingyan.baidu.com/article/d3b74d64abbd6b1f76e60947.html











相关文章
|
JSON 搜索推荐 网络协议
玩转curl指令—测试简单的HTTP接口
玩转curl指令—测试简单的HTTP接口
1129 0
|
Java 程序员 Apache
免费申请和使用IntelliJ IDEA商业版License指南
IntelliJ IDEA是广受Java开发者喜爱的工具,其商业版的价格十分昂贵,现在有机会免费获取IntelliJ IDEA的正版License,您是否心动呢?咱们一起行动吧
1088 0
免费申请和使用IntelliJ IDEA商业版License指南
|
10月前
|
人工智能 自然语言处理 监控
阿里云ModelScope平台的综合测评
ModelScope是阿里云推出的AI模型全生命周期管理平台,涵盖模型开发、训练、部署及评测全流程。其核心功能包括预训练模型库、一键式训练与部署、模型版本管理等。中文竞技场作为子平台,专注于模型性能对比与多场景任务评测,在写作创作、代码开发支持和知识问答等方面表现出色。然而,平台在模型泛化能力、高并发性能和内容质量控制上仍有改进空间。总体而言,ModelScope为开发者提供了高效便捷的工具,未来有望进一步推动AI技术普惠化。
923 10
|
传感器 物联网 5G
5G的三大主要特性:解锁未来无限可能
5G的三大主要特性:解锁未来无限可能
2056 1
|
11月前
|
监控 安全 API
非人类身份安全高危警报:OWASP首份NHI十大风险指南揭示企业隐形危机
非人类身份安全高危警报:OWASP首份NHI十大风险指南揭示企业隐形危机
|
SQL 存储 Serverless
SQL语句拆分时间字段的技巧与方法
在数据库操作中,经常需要处理时间数据
1074 1
|
数据采集 机器学习/深度学习 前端开发
Java爬虫中的数据清洗:去除无效信息的技巧
Java爬虫中的数据清洗:去除无效信息的技巧
|
Docker 容器
Docker 启动失败 (code=exited, status=1/FAILURE)错误解决办法
Docker 启动失败 (code=exited, status=1/FAILURE)错误解决办法
2831 1
|
JSON 编解码 物联网
理解时间戳的视频理解大模型CogVLM2开源!视频生成、视频摘要等任务有力工具!
随着大型语言模型和多模态对齐技术的发展,视频理解模型在通用开放领域也取得了长足的进步。

热门文章

最新文章