这篇文章介绍的内容是关于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网络协议常见的面试点 的详细内容。