首页 >后端开发 >php教程 >php网络协议常见的面试点

php网络协议常见的面试点

不言
不言原创
2018-04-24 09:33:492062浏览


这篇文章介绍的内容是关于php网络协议常见的面试点,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

  <?php
/** 
* Created by PhpStorm. 
* User: weisheng
 * Date: 2018/3/15 
* Time: 15:08
 */
/* 
* 常见考察点 
* 1.http协议状态码 
* 2.OSI七层模型
* 3.http的工作特点和工作原理 
* 4.http常见协议请求/响应头和请求方法 
* 5.HTTPS协议的工作原理 * 6.常见的网络协议含义及端口 
* 
*/
/* 
* 一.http协议状态码 
* 2开头(请求成功)表示处理请求成功的状态码 
*      200(成功) 服务器已成功处理请求 
*      201(已创建)请求成功且创建了新的资源 
*      201(已接收)服务器已接受请求但尚未处理
*      203(非授权信息) 服务器已成功处理请求,单反回的信息来自另一个来源 
*      204(无内容)服务器成功处理请求,但没有返回任何内容 
*      205(重置内容)服务器成功处理请求,但没有返回任何内容 
*      206(部分内容)服务器成功处理部分GET请求 
* 
* 
* 
* 3开头(请求重定向)表示要完成请求,需要进一步操作。通常这些状态吗用来重定向 
*      300(多种选择)   针对请求,服务器可执行多种操作。服务其根据请求者(user agent)选择一项操作,或提供操作列表供请求者选择 
*      301(永久移动)   请求的网页一永久移动到新位置。服务器返回此响应(对GET或HEAD请求的响应)时,会自动将请求者转到新的位置 
*      302(临时移动)   服务器目前从不同位置的网页响应请求,但请求这应继续使用原有位置来进行以后的请求 
*      303(查看其他位置)请求者应当对不同的位置使用单独的GET请求来检索响应式,服务器返回此代码 
*      304(未修改)自从上次请求后,请求的网页未修改。服务器返回此响应时,不会返回网页内容 *      307(临时重定向)服务器目前从不同位置的网页响应请求,但请求这应继续使用原来的位置进行以后的请求(遵循浏览器标准,不会从post变成get请求) 
* 
* 
* 
* 4开头(请求错误)这些状态码表示请求可能出错,妨碍了服务器的处理
*      400(错误请求)服务器不理解请求的语法 
*      401(未授权) 请求要求身份验证。对于网络登录的网页,服务器有可能返回此响应 
*      403(禁止)服务器拒绝请求 
*      404(未找到)服务器找不到请求的网页 
* 
* 
* 
* 5开头(服务器错误)这些状态码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错 
*      500(服务器内部错误) 服务器遇到错误,无法完成请求 
*      501(尚未实施)   服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。 
*      502(错误网关)    服务器作为网关或代理,从上游服务器收到无效响应 
*      503(服务器不可用) 服务器目前无法使用(由于超载或停机维护)。通常只是暂时状态 
*      504(网关超时)    服务器作为网关或代理,但是没有及时从上游服务器收到请求 
*      505(http版本不受支持) 服务器不支持请求中所使用的HTTP协议版本 
* 
* 
* 
*/
/* 
* OSI七层模型 
*      第一层:物理层             建立、维护、断开物理连接 
*      第二层:数据链路层          建立逻辑连接、硬件地址寻址、差错校验等功能 
*      第三层:网络层             进行逻辑地址寻址,实现不同网络之间的路径选择 
*      第四层:传输层             定义传输据的协议端口号,以及流控和差错检验(协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层) 
*      第五层:会话层             建立,管理,终止会话 *      第六层:表示层             数据的表示、安全、压缩 
*      第七层:应用层             网络服务与最终用户的一个接口(协议有:HTTP FTP(文件传输 21) TFTP SMTP(简单邮件发送 25) SNMP DNS(域名解析 53) TELNET(用于远程登录 23) HTTPS POP3(接受邮件 110) DHCP) 
* 
* 
* 工作特点:基于B/S模式 通信开销小,简单快速,传输成本低    无状态 
* 
* 工作原理:客户端发送请求给服务器,创建一个TCP连接,指定端口号,默认80,连接到服务器,服务器监听浏览器请求,一旦监听到客户端请求,分析请求类型后,服务器回向客户端返回状态信息和数据内容 
* 
*/
/* 
* HTTP协议常见请求/响应头 
* 请求头: 
*      请求方式:GET POST       
Accept:客户机支持的数据类型        
Accept-Charset:客户机采用的编码        
Accept-Encoding:客户机支持的数据压缩格式        
Accept-Language:客户机的语言环境        
Host:客户机想访问的主机名        
If-Modified-Since:客户机资源的缓存时间        
Referer:客户机从哪个资源来访问服务器的(防盗链)        
User-Agent:客户机的软件环境        
Cookie:向服务器带数据
响应头:
Location:这个头配合302状态码使用,告诉客户机找谁
Server:服务器的类型
Content-Encoding:数据的压缩格式
Content-Length:回送数据的长度
Content-Type:回送数据的类型
Last-Modified:当前资源缓存时间
Refresh:隔多长时间刷新一次
Content-Disposition:以下载方式打开数据
Transfer-Encoding:数据的传送格式
Etag:缓存相关的头
Expires:资源缓存多久时间,-1或0,则是不缓存
Cache-Control:no-cache
Pragma:no-cache
常见的请求方法:
1、OPTIONS返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
2、HEAD向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
3、GET向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:web_link和web_url
4、POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form
5、PUT向指定资源位置上传其最新内容
6、DELETE请求服务器删除Request-URL所标识的资源
7、TRACE回显服务器收到的请求,主要用于测试或诊断
8、CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
注意:
1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码501(Not Implemented)。
2)HTTP服务器至少应该实现GET和HEAD/POST方法,其他方法都是可选的,此外除上述方法,特定的HTTP服务器支持扩展自定义的方法。 
*/
/* 
* 二.常见的网络协议
网际层协议:包括:IP协议、ICMP协议、ARP协议、RARP协议。
传输层协议:TCP协议、UDP协议。
应用层协议:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。
使用TCP协议的常见端口主要有以下几种:
(1)FTP:定义了文件传输协议,使用21端口。常说某某计算机开了FTP服务便是启动了文件传输服务。下载文件,上传主页,都要用到FTP服务。
(2)Telnet:它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于DOS模式下的通信服务。如以前的BBS是纯字符界面的,支持BBS的服务器将23端口打开,对外提供服务。
(3)SMTP:定义了简单邮件传送协议,现在很多邮件服务器都用的是这个协议,用于发送邮件。如常见的免费邮件服务中用的就是这个邮件服务端口,所以在电子邮件设置中常看到有这么SMTP端口设置这个栏,服务器开放的是25号端口
(4)POP3:它是和SMTP对应,POP3用于接收邮件。通常情况下,POP3协议所用的是110端口。
使用UDP协议端口常见的有:
(1)HTTP:超文本传输协议。上网浏览网页时,就得在提供网页资源的计算机上打开80号端口以提供服务。常说"WWW服务"、"Web服务器"用的就是这个端口。
(2)DNS:用于域名解析服务,这种服务在Windows NT系统中用得最多的。DNS用的是53号端口。
(3)SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。
另外代理服务器常用以下端口:
(1). HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080
(2). SOCKS代理协议服务器常用端口号:1080 
(3). FTP协议代理服务器常用端口号:21 
(4). Telnet协议代理服务器常用端口:23 
*/



以上是php网络协议常见的面试点 的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn