使用 PHP 处理HTTP 请求报文

本文详细介绍了HTTP请求的常见类型,特别是GET和POST的区别,以及如何在PHP中处理HTTP请求头、GET和POST参数。讲解了HTTP请求报文的结构,包括Request Line、Header和Body,并详细阐述了Cache、Client、Cookie、Entity等头域的作用。同时,讨论了PHP中处理Request header的方法,如getallheaders和$_SERVER。对于POST请求,提到了_POST数组、HTTP_RAW_POST_DATA常量以及php://input流的使用情况。
摘要由CSDN通过智能技术生成

HTTP请求类型

HTTP协议定义了很多类请求,包括OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT,具体介绍如下:

  • OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*’的请求来测试服务器的功能。

  • HEAD:向服务器索要与GET请求相一致的响应,只不过响应body将不会返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取不包含在响应消息头中的元信息。

  • GET:向特定的资源发出请求。

  • POST:向特定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求body中。POST请求可能会导致新的资源的创建和/或已有资源的修改。

  • PUT:向指定资源位置上传其最新内容。

  • DELETE:请求服务器删除所表示的资源

  • TRACE:回显服务器收到的请求,主要用于测试或诊断。

  • CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

我们在实际应用中常用的也就是get和post,其他的请求方式也可以通过get和post间接实现。

GET和POST请求的区别

  • GET提交的数据放在HTTP请求报文的URL中,用?分割URL和传输数据,参数之间以&连接,如/Response/get?key1=value1&key2=value2。 POST把提交的数据放在HTTP请求报文的body中。

  • GET提交的数据大小有限制,而POST方法提交的数据没有限制

  • GET需要使用_GET[“key”],而POST通过使用_POST[“key”]、以及读取php://input流、或者读取HTTP_RAW_POST_DATA常量来实现

HTTP Request 报文结构

HTTP Request 结构如下图所示 
这里写图片描述

  • Request Line 包含HTTP 请求类型(GET、POST等), 请求URL, Http版本号 
    当使用“GET”方法的时候,body为空

  • HTTP Request Header中包含HTTP请求操作参数. header属性定义了所传输数据的各种特性.

  • HTTP Request Body 包含请求中携带的其他信息

HTTP Request Header

HTTP Request Header包含以下内容:

  • Cache 头域

  • Client 头域

  • Cookie/Login 头域

  • Entity 头域

  • Miscellaneous 头域

  • Transport 头域

Cache 头域

If-Modified-Since

作用: 把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比。如果时间一致,那么返回304,客户端就直接使用本地缓存文件。如果时间不一致,就会返回200和新的文件内容。客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中.

例如:If-Modified-Since: Thu, 09 Feb 20

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值