首先我们要知道为什么要用POST和GET。POST和GET是HTTP协议里的请求消息中常用的两种请求方法。
什么是HTTP协议里的请求消息?
HTTP协议是通过客户机先请求然后服务器响应的方式进行通信的。我们要获得对方的WEB服务,就得先发送一个请求消息给服务器,这个消息的格式为: 一个请求行 若干消息头 实体内容 三个部分。
其中“一个请求行”的格式为: 方法 URL HTTP版本
POST和GET就是这里面的“方法”了。
HTTP对他们的解释为:GET 获得Request-URI的标识的资源(Request-URI就是一个WEB地址如:http://bbs.verybat.cn/index.php)
POST 在Request-URI表示资源后附加新数据
是不是看着有些模糊,看例子就不模糊了
GET 获得Request-URI的标识的资源?
什么意思?其实我们在IE里直接输入一个WEB地址就等于是一个GET请求了。获得Request-URI的标识的资源,翻译过来就是获取WEB地址的指定页面的内容。我们来看看他们的原始报文提交的格式.
我们直接打开CMD,输入TELNET WWW.HAO123.COM 80
然后就进入了交互界面,然后我们把下面的内容粘贴到交互截面里(由于TELNET没开启本地回显所以看不到我们粘贴的内容) 请一行行复制,每复制一行回一下车在复制粘贴。不然会报错。因为回车换行符号不同!
GET http://www.hao123.com/index.htm HTTP/1.1
Host: www.hao123.com
复制粘贴两行后连续回车两下,我们就可以看到,我们用GET方法后,他就把 www.hao123.com的主页index.htm的HTML代码全部显示出来了,这就是获取WEB地址的指定页面的内容的意思了!这些操作其实就等于我们在浏览器里输入一个WEB 地址。
不过需要注意的是GET请求的最大长度为1KB也就是1024字节。换句话就是请求的WEB地址不能大于1024字节。
虽然HTTP协议的解释说GET只能用来获取数据,但其实GET也是可以用来提交数据的,不过还是有提交的最大长度为1KB也就是1024字节的限制,我们看他用来提交数据的原始报文的格式.
我们架设一个WEB服务器,把下面这代码保存为1.asp,放到WEB服务根目录。
<%
num=request("num")
pass=request("pass")
set fs=server.CreateObject("Scripting.FileSystemObject")
set file=fs.OpenTextFile(server.MapPath("test.txt"),8,True)
file.writeline num+"--"+pass
file.close
set file=nothing
set fs=nothing
response.write "Send OK!"
%>
把这些代码保存为1.asp
学过ASP的都知道这是把两个变量num和pass的内容提交到服务器然后写入本ASP文件所在路径下的test.txt文本文件。
但是这没有提供表单让我们提交这两个变量我们怎么提交呢??
我们先用直接在IE的构造一个GET提交的方法来提交数据
如下
http://127.0.0.1/1.asp?num=test&pass=mima
在ASP文件后加一个?号,表示后面有附加数据,然后num=数据的值,多个变量用&符号分开.
这是直接通过IE来进行GET提交的方法,这里可以很清楚的看见,他把提交的内容全部写在WEB地址栏目上了,不安全.
把这个GET提交的语句用原始报文格式表示出来就是,把
GET http://www.hao123.com/index.htm HTTP/1.1 改成
GET http://127.0.0.1/1.asp?num=test&pass=mima HTTP/1.1
Host: www.hao123.com
可以看到他直接把提交内容写在请求URL里了.
POST也可以用来提交数据,不过他没大小限制,提交数据时也不会把提交内容显示的WEB地址栏目里,而是放在数据报文的数据段里,这样就比较安全了.但是他却不能用来获取数据,这是他们的区别之一.我们来看一下POST的原始报文提交格式,在来和GET的报文提交格式对比一下,就能很清楚发现他们在提交时的区别了
直接打开CMD,输入TELNET WWW.HAO123.COM 80
然后就进入了交互界面,然后我们把选面的内容粘贴到交互截面里(由于TELNET没开启本地回显所以看不到我们粘贴的内容) 请一行行复制,每复制一行回一下车在复制粘贴。不然会报错。因为回车换行符号不同!
POST http://127.0.0.1/1.asp HTTP/1.1
Host: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 18
num=test&pass=test
复制粘贴完后连续回车两下,他就完成我们代码的功能了。
用Content-Type: 申明可以无限增加POST提交内容的大小。
可以看到POST语句用Content-Length: 消息头申明了我们要提交内容"num=test&pass=test"的大小。
num=test&pass=test这是就我们提交的内容,可以发现他被放在了报文的数据段里,没放在报文头部.
这就是POST和GET本质上的区别了。
分享到:
相关推荐
### AJAX POST 与 GET 提交的区别详解 #### 一、GET与POST基本概念及应用场景 在探讨AJAX中GET和POST的区别之前,我们先来了解一下这两种请求方式的基本概念。 **GET**请求通常用于获取资源信息,它将参数拼接到...
"Ajax中Get和Post请求的区别" Ajax作为异步JavaScript和XML的简写,是一种创建交互式网页的技术。其中,Get和Post是两种常用的HTTP请求方法,尽管它们都是用于将数据从客户端发送到服务器端,但是它们之间存在着很...
浅析Get与Post的区别 Get和Post是两种常用的表单提交方式,在Web开发中经常被使用。但是,很多人并不了解这两种方式的区别,导致在实际开发中出现问题。本文将详细阐述Get和Post的区别,以便读者更好地理解和使用这...
Django 中request.get和request.post的区别 POST和GET差异: POST和GET是HTTP协议定义的与服务器交互的方法。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。另外,还有PUT和DELETE方法。 POST和GET都...
深入理解GET与POST方法的差别:HTTP协议解析 在探讨GET与POST方法的差别之前,我们首先需要了解HTTP协议的基本概念。HTTP(HyperText Transfer Protocol)超文本传输协议,是互联网上应用最为广泛的一种网络协议,...
总结来说,GET和POST的主要区别在于其目的和行为:GET用于获取资源,是安全和幂等的,数据在URL中;POST用于创建或修改资源,可能改变服务器状态,数据在请求体中。在实际开发中,理解并遵循这些原则可以提高系统的...
"GET与POST的区别" GET和POST是HTTP协议中两种最常用的请求方法,它们都是用来从客户端向服务器端发送请求的,但它们之间有很多不同之处。 GET方法 GET方法是从服务器上获取数据的请求方法。它的主要特点是将参数...
理解GET与POST的区别对于掌握Web开发至关重要。 ### GET与POST的基本区别 #### 1. 数据传输位置 - **GET**:参数通过URL进行传递,数据附在URL之后,以问号“?”分隔URL和传输数据,并且多个参数之间用“&”符号...
网络编程中用到的交互方式post和get的区别
在线PostGet本地版是一款专为开发者设计的工具,它提供了与在线PostGet服务相同的功能,但可以在本地运行,便于开发者进行API测试、数据交互以及调试。这个应用简化了HTTP请求的发送过程,使得用户能够在自己的...
Api接口调用封装,实现POSt,GET等数据请求,Api接口调用封装,实现POSt,GET等数据请求,Api接口调用封装,实现POSt,GET等数据请求,Api接口调用封装,实现POSt,GET等数据请求,Api接口调用封装,实现POSt,GET等数据请求,...
总的来说,理解HTTP协议中的POST与GET区别对于开发人员至关重要,这有助于优化应用程序性能、确保数据安全以及正确处理服务器响应。在C#中,通过HttpWebRequest和HttpWebResponse类,可以方便地实现HTTP请求,从而与...
c# 运用get/post 和使用webservicec# 运用get/post 和使用webservicec# 运用get/post 和使用webservicec# 运用get/post 和使用webservice
- 缓存与历史:GET请求可能被缓存,出现在历史记录中;POST请求则不会。 - 可重复性:GET请求是幂等的,多次请求相同资源结果一致;POST请求则不是,多次提交可能会产生不同的效果。 - 适用场景:GET适合用于获取...
PHP 中的get与 post 方法的区别
#### GET与POST的区别 - **数据位置**:GET方法将参数附加在URL中,而POST方法将参数放在请求体中。 - **安全性**:由于GET方法将参数暴露在URL中,因此不适合传输敏感信息;POST方法相对更安全。 - **数据大小限制...
### GET与POST方法的区别 在Web开发中,GET与POST是最常见的两种HTTP请求方式,它们在功能、安全性、数据传输等方面存在显著差异。本文将基于提供的文件内容对这两种方法进行详细解析。 #### 1. 基本概念 - **GET...
本文将深入探讨GET和POST的区别、应用场景以及VB(Visual Basic)中如何使用它们。 GET和POST是HTTP请求的核心方法,用于从服务器获取数据或向服务器发送数据。GET主要用于从服务器获取资源,它的参数通常显示在URL...
表单提交中get和post的区别 在Web开发中,表单提交是非常常见的一种交互方式,而在表单提交中,get和post是两种常用的提交方式。它们之间的区别是每个Web开发者都需要了解的。 首先,让我们来了解一下get和post的...