PHP面试 PHP基础知识 十(网络协议)

网络协议

    HTTP协议状态码

      状态分为五大类:1XX、2XX、3XX、4XX、5XX面试

        1XX:信息类状态码  表示接受请求正在处理跨域

        2XX:success 成功状态码  请求正常处理完毕浏览器

        3XX:重定向   须要进行附加操做完成请求缓存

        4XX:客户端错误    服务器没法处理请求安全

        5XX:服务器错误    服务器处理请求出错服务器

     常见状态码:网络

        200   成功   从客户端发出的请求在服务器端正常处理并发

        204   服务器接收的请求已成功处理   但在返回的响应报文中不含实体的主体部分   (没有内容)post

        206   客户端进行了范围请求   服务端成功执行了部分请求加密

        301   跳转   永久性重定向   请求的资源已被分配了新的uri 之后请指向如今的uri

        302   临时性重定向   请求资源被分配了临时uri  这次访问请指向新的uri

        303   因为请求的资源存在另外一个uri  应使用get方法定向获取资源

        304   客户端发送附带条件的请求 服务器端容许请求访问资源  但因发生请求未知足条件的状况

        307   临时重定向  该状态码和302相同含义

        400   请求报文中存在语法错误

        401   发送的请求须要HTTP认证的认证信息

        403   对资源的访问别服务器拒绝

        404   服务器没法找到请求的资源

        500   服务器错误没法完成请求

        503   服务器正处在超负载或者正在停机维护

    OSI七层模型

      物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

        第一层:物理层

           创建、维护、断开物理链接

        第二层:数据链路层

           创建逻辑链接、进行硬件地址寻址、差错校验等功能

        第三层:网络层

           进行逻辑地址寻址,实现不一样网络之间的路径选择

        第四层:传输层

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

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

        第五层:会话层

           创建、管理、终止会话

        第六层:表示层

           数据的表示、安全、压缩

        第七层:应用层

           网络服务与最终用户的一个接口。

           协议:HTTP \ FTP \ TFTP \ SMTP \SNMP \ DNS \ TELNET \ HTTPS \ POP3 \ DHCP 

    HTTP协议工做特色和工做原理

      工做特色:基于B/S模式,通讯开销小、简单快速、传输成本低,使用灵活、可以使用超文本传输协议,节省传输时间,无状态。

      工做原理:客户端发送请求给服务器,建立一个TCP链接,指定端口号(默认80),链接到服务器,服务器监听浏览器请求,一旦监听到客户端请求,分析请求类型,服务器会向客户端返回状态信息和数据内容。

    HTTP协议常见请求/响应头和请求方法
       常见请求头信息  

        Accept    告诉浏览器客户端支持的数据类型

        User-Agent  告诉客户机的软件环境

        Cookie      能够带给服务器客户端的数据

        Date        请求时间

        Referer         从哪一个资源访问服务器  (经常使用于防盗链)

        Origin      用来讲明最初请求是从哪里发起的    (百度了解referer和origin的区别)

       常见响应头信息

        Content-Type    告诉浏览器响应数据类型  

        Cache-Control    控制浏览器的缓存

        X-Forwarded-For     一个 HTTP 扩展头部

        Access-Control-Allow-Origin   设置跨域头    如 header("Access-Control-Allow-Origin:*"); 容许全部域名访问

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

      

      请求方法

        GET  POST   HEAD   OPTIONS   PUT   DELETE   TRACE

        面试中常问的一个为题:get和post请求方法的区别?

        post更安全(不会做为url的一部分,不会被缓存、保存在服务器日志、以及浏览器记录中)

        post发送的数据量更大(get有url长度限制)

        post能发送更多的数据类型(get只能发送ASCII(gb2312)字符)

        post比get慢

        post是向服务器提交数据的一种请求,get是向服务器索取的一种请求

        get会将数据缓存起来

        POST请求过程:

          一、浏览器请求TCP链接(第一次握手)

          二、服务器答应进行TCP链接(第二次握手)

          三、浏览器确认,并发送post请求头(第三次握手,这个报文比较小,因此HTTP会在此时进行第一次数据发送)

          四、服务器返回100 continue响应

          五、浏览器开始发送数据

          六、服务器返回200 🆗响应

        GET请求过程:

          一、浏览器请求TCP链接(第一次握手)

          二、服务器答应进行TCP链接(第二次握手)

          三、浏览器确认,并发送get请求头和数据(第三次握手)

          四、浏览器返回200 🆗响应

    HTTPS协议工做原理

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

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

    常见网络协议及端口

      FTP   文件传输协议  端口:21

      Telnet   远程登录   端口:23

      SMTP  简单邮件传输协议 端口:25

      POP3  接收邮件    端口:110

      HTTP  超文本传输协议  端口:80

      DNS   域名解析服务   端口:53

相关文章
相关标签/搜索