HTTP系列二: 使用telnet模拟http请求

上一篇讲解了http协议的大致原理与基本格式,这一篇使用mac系统自带telnet工具来模拟http请求,分为GET请求和POST请求


GET请求

为了测试使用,我在本地服务器上上传了一个php脚本,


php脚本

这个脚本的功能是在浏览器输入用户名和密码,正确的用户名为zhangsan,密码为1234,如果用户名和密码正确,那么就返回username=zhangsan,如果用户名和密码不正确,那么就返回空字符。同时支持get请求和post请求,会把请求方法也输出。


浏览器请求

1.首先打开终端,在终端输入telnet 127.0.0.1 80


连接成功

2.连接成功后,按终端提示 按住control+] 进入telnet命令行,注意命令操作一定要快,因为telnet连接web服务器后,在短时间内就会被web服务器关闭连接。具体连接时间是多少不太清楚,目测1分钟左右。所以最好提前把需要输入的命令复制好,等用的时候直接复制粘贴。

为了方便,我就把命令敲在此处:

GET /login.php?username=zhang&password=1234 HTTP/1.1

Host:localhost


进入telnet命令行

3.注意此处一定要在按一下回车,不能直接在telnet>后面输入命令

4.输入两条命令后 连续按两次回车 即是发出请求


请求成功

可以看到,服务器返回是登录成功。



POST请求

post请求与get请求前边操作一致,只是请求行 请求头 与请求头有区别

一个post请求的命令如下:

POST /login.php HTTP/1.1

Host:localhost

Content-type:application/x-www-form-urlencoded

content-length:28


username=zhang&password=1234


注意请求头输入完之后要留一个空行,表示请求头输入完成,接下来的内容是请求体。


post请求成功

可以看到telnet发送的POST请求也得到了服务器的正确响应。

通过使用telnet模拟http的请求,我们发现,其实只要我们发送给服务器的消息的格式符合http请求规范,那么http服务器(apache,ngnix)就能正确响应我们的请求,而浏览器所做的工作就是包装我们发送的http请求,形成符合规范的http请求,详细过程我们可以通过谷歌浏览器或者抓包工具进行抓取分析。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,247评论 19 139
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 12,730评论 6 152
  • Http协议详解 标签(空格分隔): Linux 声明:本片文章非原创,内容来源于博客园作者MIN飞翔的HTTP协...
    Sivin阅读 10,641评论 3 82
  • 工作流程 一次HTTP操作称为一个事务,其工作过程可分为四步: 1)首先客户机与服务器需要建立连接。只要单击某个超...
    保川阅读 10,092评论 2 14
  • 一回到家,一股淡淡的花香扑面而来,清新自然。 原来是我家的茉莉花开了。小小两朵白色的花椅在枝头,秀丽多姿,惹人怜爱...
    布蓝的天阅读 3,987评论 6 2

友情链接更多精彩内容