博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP 笔记与总结(1 )Telnet 分别发送 HTTP GET 和 HTTP POST 请求
阅读量:4953 次
发布时间:2019-06-12

本文共 1665 字,大约阅读时间需要 5 分钟。

简化的说:

WebService = HTTP 协议 + XML

Rest = HTTP 协议 + Json

各种 API = HTTP 协议 + XML / Json 来实现

 

HTTP 请求信息格式

请求行

  a.请求方法:GET,POST,PUT,DELETE,TRACE,OPTIONS

  b.请求路径(请求的资源,URL 的一部分)

  c.所用协议

请求头信息

请求主体信息

 

HTTP 请求除了浏览器,其他只要满足 HTTP 协议的工具都可以发送 HTTP 请求,例如 Telnet(Telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议和主要方式):

Windows 下进入 CMD,输入要接收 HTTP 请求的服务器的 ip 地址

telnet 127.0.0.17 80

(如果提示:'telnet' 不是内部或外部命令,也不是可运行的程序,则进入:"控制面板” --> “程序” ---> “打开或关闭Windows功能”,勾上“telnet客户端"

 

按下 ctrl + ]

再按下 Enter,打开回显功能(便于调试);

 

此时 telnet 客户端已经连接上了 80 端口,于是可以按照 HTTP 协议的标准发送请求:

GET 请求,请求 /php/http/1.php 这个路径,使用 HTTP/1.1 协议进行请求(请求行输入完毕),回车

虚拟目录是 Host:127.0.0.17(请求头信息输入完毕)

回车

回车(空行头信息主体信息(可以没有)以空行区分

HTTP 请求与响应如下:

 

 

 HTTP 响应信息格式

 上图中的响应信息如下:

HTTP/1.1 200 OKDate: Tue, 07 Jul 2015 13:04:57 GMTServer: Apache/2.2.21 (Win32) PHP/5.3.10X-Powered-By: PHP/5.3.10Content-Length: 5Content-Type: text/htmlhello

其中,

响应行:HTTP/1.1 200 OK   

响应行分 3 部分:协议版本(HTTP/1.1)状态码(200)状态文字(OK

 响应头信息:格式为

key:value

key:value

key:value

...

key:value

content-length:主题的长度

空行

响应主体信息:hello

 

 

【例】用 telnet 完成 HTTP 的 POST 请求。

先写一个 php 文件 2.php:

1 

 

分析:HTTP 请求的格式

$方法 $路径 $协议

请求头信息

(空行)

请求主体信息

如图:

注意:

头信息里要标明主体的长度 Content-Length 和 主体类型 Content-type:application/x-www-form-urlencoded

POST /php/http/2.php HTTP/1.1Host: 127.0.0.17Content-type: application/x-www-form-urlencodedContent-length:19username=dee&age=28HTTP/1.1 200 OKDate: Tue, 07 Jul 2015 16:15:03 GMTServer: Apache/2.2.21 (Win32) PHP/5.3.10X-Powered-By: PHP/5.3.10Content-Length: 13Content-Type: text/htmlwrite success遗失对主机的连接。C:\Users\Administrator>

 

其中:

主体信息:username=dee&age=28 

 

同时 post.txt:

 

 至此完成了 POST 请求和响应。

转载于:https://www.cnblogs.com/dee0912/p/4625804.html

你可能感兴趣的文章
Binding object to winForm controller through VS2010 Designer(通过VS2010设计器将对象绑定到winForm控件上)...
查看>>
Spring Boot实战笔记(二)-- Spring常用配置(Scope、Spring EL和资源调用)
查看>>
前端性能优化集【持续更新】
查看>>
第二章:webdriver 控制浏览器窗口大小
查看>>
四则运算2初步构思
查看>>
Break the Chocolate(规律)
查看>>
C#jbox小节
查看>>
结构体指针释放的问题
查看>>
C#枚举Enum[轉]
查看>>
第三百五十七天 how can I 坚持
查看>>
【动态规划】流水作业调度问题与Johnson法则
查看>>
startActivityForResult不起作用
查看>>
Python&Selenium&Unittest&BeautifuReport 自动化测试并生成HTML自动化测试报告
查看>>
活现被翻转生命
查看>>
POJ 1228
查看>>
SwaggerUI+SpringMVC——构建RestFul API的可视化界面
查看>>
springmvc怎么在启动时自己执行一个线程
查看>>
流操作的规律
查看>>
Python基础学习15--异常的分类与处理
查看>>
javascript运算符的优先级
查看>>