全面解读php-网络协议

一、OSI七层模型

1、物理层

作用:建立,维护,断开物理连接

2、数据链路层

作用:建立逻辑连接,进行硬件地址寻址,差错校验等功能。

3、网络层

作用:进行逻辑地址寻址,实现不同网络之间的路径选择。

4、传输层

作用:定义传输数据的协议端口号,以及流控和差错校验。

协议有:TCP、UDP,数据包一旦离开网卡即进入网络传输层。

5、会话层

作用:建立、管理和终止会话。

6、表示层

作用:数据的表示,安全和压缩。

7、应用层

作用:网络服务与最终用户的接口。

协议有:HTTP、HTTPS、FTP、SMTP、DNS、TELNET、POP3、DHCP、SNMP

 二、HTTP协议的工作特点和工作原理

1、工作特点

  • 基于B/S模式 (Browser/Server,浏览器/服务器模式)。
  • 通信开销小,简单快速,传输陈本低。
  • 使用灵活,可使用超文本传输协议。
  • 节省传输时间。
  • 无状态。

2、工作原理

三、HTTP常见请求/响应头

Content-type: 请求的与实体对应的MIME信息。

Accept: 指定客户端能接受的内容和类型。

Origin: 最初的请求来源于哪儿,主要用于POST请求。

Cookie: HTTP请求发起时,发送给服务端的cookie值。

Cache-Control: 指定请求或响应的缓存机制。

User-Agent: 用户信息。

Referer:上级请求路径,和Origin的不同之处在于Orgin只能用于POST,而Referer是所有的请求都可以。

X-Forwarded-For: 请求端的真实的IP,做代理的时候可能需要用它来获取IP。

Access-Control/Allow-Origin: 允许特定的域名来进行访问,跨域的时候需要用到。

Last-Modified: 请求资源的最后响应时间。

四、HTTP协议的请求方法

1、GET (查)

get请求会显示请求所指定的资源,主要用于数据的读取,是幂等的操作,而不应该用于非幂等的操作。

注:幂等:每次拿到的数据都是一样的

2、POST (增)

向指定资源提交数据,由服务器进行处理,POST方法是非幂等的方法,POST请求可能会创建新的资源或者修改现有的资源,通常情况下,RESTAPI规则中,创建用POST

 3、HEAD

和GET方法一样,都是想服务器发送指定资源的请求,但是服务器在响应HEAD请求时不会回传资源的内容部分,只会回传头信息

4、OPTIONS

与HEAD类似,一般用于客户端查看服务器的性能,返回由该资源所支持的所有HTTP请求方法,该方法会用 ' * ' 来代替资源名称,向服务器发送OPTIONS请求可以测试服务器功能是否正常。

5、PUT (改)

PUT会向指定资源位置上传最新的内容,是幂等的方法,通过该方法客户端可以将指定资源的最新数据传送给服务器取代指定资源的内容,通常情况下,RESTAPI规则中,修改用PUT. 

6、DELETE (删)

DELETE用于请求服务器删除所请求的URL所标识的资源,DELETE是幂等方法。

7、TRANCE

TRANCE用于请求服务器回显所收到的请求信息,该方法主要用于HTTP请求的测试或诊断。

 GET和POST的区别

  • 1、GET在做后退或刷新的时候,没什么太大的区别,是无害的。POST数据会被重新提交。
  • 2、GET可以收藏为书签,POST不能被收藏为书签。
  • 3、GET可以被浏览器缓存,POST不能被浏览器缓存。
  • 4、GET请求的编码类型为 application/www-form-urlencoded,POST除此之外还有一种 multipart/form-data,对二进制数据使用多重编码。
  • 5、GET的参数会保留在历史记录中,POST的参数不会存在于历史记录中。
  • 6、GET的数据长度有限制,最长为2048个字符,而POST没有限制。
  • 7、GET的数据类型值允许ASCII字符,POST没有此限制,还允许二进制的数据。
  • 8、GET的安全性差,不能传输敏感信息,POST安全性高。

五、HTTPS的工作原理

HTTPS是一种基于SSL/TLS的http协议,所有的HTTP数据都是在SSL/TLS协议封装之上传输的。

 HTTPS协议是在HTTP协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议。

六、常见的网络协议及端口

1、FTP : 文件传输协议,用于传输文件,默认端口为 21

2、Telnet:用于远程登录的端口,用户可以以自己的身份远程连接到计算机上,基于这种端口可以提供一种基于DOS下的通信服务,通常情况下,默认端口为 23

3、SMTP:定义了简单邮件传输协议,现在很多邮件服务器都用这个协议发送邮件,默认端口为 25

4、POP3:与 SMTP 协议对应,用于接收邮件,默认端口为 110

5、HTTP超文本传输协议 ,默认端口为 80   

6、DNS:用于域名解析服务,这种服务在 windows-NT 系统中用的很多,默认端口为 53

原文地址:https://www.cnblogs.com/chrdai/p/11192191.html