• HTTP 笔记与总结(1 )Telnet 分别发送 HTTP GET 和 HTTP POST 请求


    简化的说:

    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 OK
    Date: Tue, 07 Jul 2015 13:04:57 GMT
    Server: Apache/2.2.21 (Win32) PHP/5.3.10
    X-Powered-By: PHP/5.3.10
    Content-Length: 5
    Content-Type: text/html
    
    hello
    

    其中,

    响应行: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 <?php
    2 /*
    3     把接收到的 POST 数据写入文本
    4     要求用 telnet 来请求
    5 */
    6 $str = implode(',', $_POST);
    7 file_put_contents('post.txt', $str."
    ", FILE_APPEND);
    8 echo 'write success';

    分析:HTTP 请求的格式

    $方法 $路径 $协议

    请求头信息

    (空行)

    请求主体信息

    如图:

    注意:

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

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

    其中:

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

    同时 post.txt:

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

  • 相关阅读:
    ch2_CaseStudy_CanonicalNASLScript.txt
    树形数据广度排序处理示例.sql
    编程管理SQL SERVER的帐号.sql
    索引影响查询结果顺序的示例
    校验表中数据是否有循环编码的通用存储过程.sql
    BackupAndRestoreSmallWorks.sql
    cPanel下安装GodaddySSL教程
    ExcludingRNG.cs
    SymmetricAlgorithmEvaluator.cs
    操作SQLSERVERAGENT服务的扩展存储过程.sql
  • 原文地址:https://www.cnblogs.com/dee0912/p/4625804.html
Copyright © 2020-2023  润新知