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等,使用了许多前卫的开发规范和最佳实践,建议多学习和使用。


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

查看所有标签

猜你喜欢:

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

Bulletproof Web Design

Bulletproof Web Design

Dan Cederholm / New Riders Press / 28 July, 2005 / $39.99

No matter how visually appealing or packed with content a Web site is, it isn't succeeding if it's not reaching the widest possible audience. Designers who get this guide can be assured their Web site......一起来看看 《Bulletproof Web Design》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

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

Base64 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具