PHP回顾之web响应

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

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


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

查看所有标签

猜你喜欢:

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

HTML5与CSS3基础教程(第8版)

HTML5与CSS3基础教程(第8版)

[美] Elizabeth Castro、[美] Bruce Hyslop / 望以文 / 人民邮电出版社 / 2014-5 / 69.00元

本书是风靡全球的HTML和CSS入门教程的最新版,至第6版累积销量已超过100万册,被翻译为十多种语言,长期雄踞亚马逊书店计算机图书排行榜榜首。 第8版秉承作者直观透彻、循序渐进、基础知识与案例实践紧密结合的讲授特色,采用独特的双栏图文并排方式,手把手指导读者从零开始轻松入门。相较第7版,全书2/3以上的内容进行了更新,全面反映了HTML5和CSS3的最新特色,细致阐述了响应式Web设计与移......一起来看看 《HTML5与CSS3基础教程(第8版)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试