PHP回顾之web响应

栏目: PHP · 发布时间: 8年前

内容简介:PHP回顾之web响应

PHP回顾系列目录

与客户端请求相对应的是服务端请求。同请求类似,响应包含三部分:状态码、头部(header)和正文(body)。

状态码

状态码是指示响应成功与否的代码,常见的代码从1xx-5xx。左耳朵耗子微博上的一张图可以很好的概况各类状态码的含义:

PHP回顾之web响应

如果自作主张一些,客户端可以根据状态码而决定是否解析正文。例如对于30x系列,正文的内容无关紧要(浏览器默回直接请求跳转网址而略过显示源页面正文);对于20x, 40x和50x系列,正文包含了请求的主体内容,应该正确的解析和显示。

PHP可以使用http_response_code来获取和设置响应的状态码。

头部

同请求类似,头部的相关信息会放到头部段。 注意这里说的头部(header)与HTML文档中的头部(head)不同,因为服务端发送的不一定是HTML。 例如cookie、文档格式等信息,放在响应头部里传递给客户端,但这些信息不能放在HTML文档中的head标签中。图片、音视频等,不是格式化的文档,没有head标签,所以文档格式需要放在响应的头部中。

头部中的诸多信息,与请求带过来的类似,例如常见的文档格式、可接受的编码等。服务端也可设置自定义的头部信息。

PHP通过header函数来设置请求的头部信息(cookie则使用setcookie函数)。由于头部信息应该在正文之前,发送过正文后调用header函数会出现警告。

正文

除特殊情形外,正文是请求的主体,其中最为关键的一部分。常见的正文是HTML文档,浏览器解析渲染后展现给用户。诸如PDF、图片、XML等格式的响应正文,浏览器基本也能直接渲染显示。如果浏览器无法解析渲染正文,例如exe文件、音视频文件,就会提示用户下载。

PHP的许多功能和函数会影响到正文输出。由于 PHP 是嵌入式脚本,内嵌的HTML将会被直接发送;纯PHP脚本中,echo, print, var_dump、var_export等系列函数会将结果直接发送;exit/die, system, exec、phpinfo等函数也会将结果发送;同时,输出控制的系列函数(如ob_start, ob_get_contents)会影响输出时机和结果。

总结

由于历史原因,PHP许多功能显得比较杂乱,设计上欠缺整体考虑。这也是PHP的优点之一:学习容易,快速上手,有多种手段解决一个事情。对于中大型项目,维护的成本比开发高很多,对规范化和可维护的需求也就更高。现代化的框架,如Yii, Laravel等,使用了许多前卫的开发规范和最佳实践,建议多学习和使用。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

着陆页:获取网络订单的关键

着陆页:获取网络订单的关键

谢松杰 / 电子工业出版社 / 2017-1-1 / CNY 55.00

着陆页是用户点击广告后看到的第一个页面,是相关产品和服务的商业模式与营销思想的载体,是实现客户转化的关键。本书从“宏观”和“微观”两个层面对着陆页的整体框架和局部细节进行了深入的讨论,既有理论和方法,又有技术与工具,为读者呈现了着陆页从策划到技术实现的完整知识体系,帮助读者用最低的成本实现网站最高的收益。 谢松杰老师作品《网站说服力》版权输出台湾,深受两岸读者喜爱。本书是《网站说服力》的姊妹......一起来看看 《着陆页:获取网络订单的关键》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换