Http,url,get,post的关系:Http协议通过定义get post等请求,对url地址描述的资源进行增删改查。
一、url:
百度解释:Url全拼:UniformResource Locator
1.1 统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
1.2 基本URL包含:模式(或称协议)、服务器名称(或IP地址)、路径和文件名,
再比如我们的百度首页:https://www.baidu.com/?tn=57095150_1_oem_dg。
完整的、带有授权部分的普通统一资源标志符语法看上去如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志。
二、Get和Post
之前一直听说get和post是提交from表单的两种形式,后来通过查阅资料,有了些不同的认识。
http对服务器有八种请求方式:
以上的八种方式中,最常用的四种方式可以与数据库增删改查操作对应:
增——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://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