利用telnet模拟http请求

  最近准备接触php socket编程,所以准备先巩固以前学到的知识, 这里先简单回顾下 利用telnet 来模拟http请求。

  1.先在80端口指向的目录建立http.php 文件

  2.在终端输入 telenet 127.0.0.1 80

     ps: windows doc命令行下:ctrl键 + ‘]‘ 键 进入输入模式,接着按回车切换到显式输入模式(可以显示输入的字符)

模拟GET请求 

   #在刚才建立的http.php 文件里打印 get请求参数 print_($_GET);

  #请求方式    请求地址   协议

GET  /test.php?a=1 HTTP/1.0
HOST : 127.0.0.1

输入完成后 2次回车 可以看到打印的get参数  a = 1 ,以及一些头信息。

这里需要注意的是,HTTP/1.1 版本 必须要加上HOST ,  HTTP/1.0 则可不加。

模拟POST请求

#在刚才建立的http.php 文件里打印 post请求参数生成文件 file_put_contetns(‘post.php‘,var_export($_POST,true));

   #需要加上 请求的方式和消息体的长度即可。

POST /test.php HTTP/1.0
Host: localhost
Content-type: application/x-www-form-urlencoded
Content-length: 16

name=lemon&age=23

打开post.php 可以看到 name=>lemon , age=2  .因为设置的消息体长度为16。

  

  

  

时间: 2024-08-26 02:34:49

利用telnet模拟http请求的相关文章

python利用requests模拟http请求及请求头

一.通过requests发送请求 之前一直使用urllib以及urllib2模拟http请求发送,在实际场景中,我们需要造自己定义好的header.body等等,使用urllib很麻烦,很偶然的机会,接触到了requests,可以通过发送xml.简单易用,直接上代码: requests  connected():          #通过形参传入url以及请求参数,get方法发送请求     (param):         get = requests.get(==param)        

利用charles模拟Http请求和响应

最新项目组服务端的童鞋们太不给力了,接口一直没有出来,为了方便开发.服务器的童鞋们定义好了http接口以及返回的json结构.然后客户端就可以利用json结构,模拟数据,然后顺利开发,最后等服务器接口完成的时候,再次做一下联合调试. 这样的方法,有专业的名字mock. 下面介绍下怎样利用mock http响应. 比如有个http接口 http://xx.oo.com/api/helloworld 返回的json结构如下. { "hello": "world" } 我

20150108--HTTP协议+PHP模拟HTTP请求-02

HTTP协议 1. 什么是http协议? 协议:协议是一种双方约定好的规范,双方在做某一件事情的事情,必须按照事先定义好的规范去实现和操作. HTTP:超文本传输协议,HyperText Transport Protocol,超文本在服务器与浏览器之间传输的时候必须遵循的协议. 2. 什么是html? 超文本标记语言:HyperText Markup Language html的作用:保证同一数据在不同的电脑(用户),看到的效果一样. HTTP协议工作原理 HTTP协议特点 支持客户/服务器模式

利用fiddler模拟发送json数据的post请求

fiddler是调试利器,有许多好用的功能,这里简单的介绍一下利用fiddler模拟发送post请求的例子 先简单介绍一下失败的例子,最后给出正确的方法 在fiddler里边按照图上所示的设置好之后,点击右上角的execute,会报错 看下原因说的是后端不支持你提交数据的格式,也就是你发送的数据格式不对,可以添加请求头即可 如图设置 这样就ok了 利用fiddler的模拟post请求的时候,自己可以根据报错,修改就ok

利用socket模拟http的混合表单上传(在一个请求中提交表单并上传多个文件)

在很多企业级应用中,我们都没法直接通过开发语言sdk包封装的http工具来模拟http复合表单(multipart/form-data),特别是在跨语言跨平台的编程过程中,其实实现方案并不复杂,只要你了解了http协议中复合表单的报文结构就很简单了: httpheader ------时间戳------ 表单参数1 ------时间戳------ 表单参数2 ------时间戳------ 文件1的描述+二进制信息 ------时间戳------ 文件2的描述+二进制信息 下面我们进一步以一段c

关于HttpClient模拟浏览器请求的參数乱码问题解决方式

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44407297 http://www.llwjy.com/blogdetail/9383e88e4bc7378b8318e15b0ac33559.html 个人博客站已经上线了,网址:www.llwjy.com,欢迎大家吐槽~ -----------------------------------------------------------------------------

CMD模拟http请求

搭建环境 前提是在win7中开启telnet服务 开启方法请参考:http://jingyan.baidu.com/article/870c6fc3cd6fa9b03fe4bee4.html 打开Telnet服务 模拟get请求,访问百度页面 1.打开命令提示符输入:telnet www.baidu.com 80  按enter 2.按ctrl+] 打开回显功能(便于查看自己输入的字符) (注意继续按enter键) 3.输入 GET /index.html HTTP/1.1HOST:www.ba

Node爬虫——利用superagent模拟登陆

一.概述 最近学习了node,试着写了个爬虫,这是模拟登陆的一部分. 1.需要的工具 2.superagent用法的简述 3.抓包分析 4.最小示例 二.需要的工具 nodejs,superagent,wireshark. nodejs没什么可介绍的. superagent是nodejs众多插件之一,用npm命令安装.是一个超轻的ajax api,有着可读性强,高度灵活,学习曲线低的优点. wireshark是一个抓包工具,很强大.之后我们需要用它来分析post请求与cookie. 三.supe

nodejs爬虫笔记(五)---利用nightmare模拟点击下一页

目标 以腾讯滚动新闻为例,利用nightmare模拟点击下一页,爬取所有页面的信息.首先得感谢node社区godghdai的帮助,开始接触不太熟悉nightmare,感觉很高大上,自己写代码的时候问题也很多,多亏大神的指点. 一.选择模拟的原因 腾讯滚动新闻,是每六十秒更新一次,而且有下一页.要是直接获取页面的话得一页一页的获取,不太方便,又想到了找数据接口,然后通过请求得到数据,结果腾讯新闻的数据接口是加密的,这种想法又泡汤了.因而想到笔记(四)中模拟加载更多的模块,看利用nightmare这