使用Telnet的例子

Microsoft Microsoft Windows 2000 和 WindowsXP
1.单击 开始 , 单击 运行 , 然后键入 telnet.exe 要启动 telnet 程序 2.键入以下命令: 有关 Windows 2000:
3.设置 local_echo
      用于 WindowsXP:
      设置 localecho
    在空行可退出配置并返回到 telnet 会话按 ENTER 键一次。 提交例如: GET /index.asp HTTP/1.1 Host: 127.0.0.1 Accept: */* User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98) Connection: Keep-Alive 对于刚学ASP,PHP这类脚本语言的朋友。对POST和GET的区别都有些模糊。

        其实看过HTTP后,对这两种请求方法还是比较好理解的。

首先我们要知道为什么要用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本质上的区别了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勾玉2004

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值