Home >Backend Development >PHP Tutorial >Common interview points for PHP network protocols

Common interview points for PHP network protocols

不言
不言Original
2018-04-24 09:33:492080browse


This article introduces the common interview points about the PHP network protocol. It has a certain reference value. Now I share it with you. Friends in need can refer to it

  <?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 
*/



The above is the detailed content of Common interview points for PHP network protocols. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn