1. Web访问流程(即在浏览器中输入一个网址至浏览器展现页面结果的过程)

a. 将输入的网址提取出域名,在本地hosts文件中查找对应的IP地址(windows为C:/windows/system32/drivers/etc/hosts; linux为/etc/hosts)

b. 如果没有在本地hosts文件中找到对应的IP地址,则请求DNS服务器,DNS服务器对域名进行解析,返回对应IP(如果页面没有响应也有可能是DNS服务器故障)

c. 本地浏览器发起HTTP请求,向IP主机服务器发起请求,HTTP请求包含请求头,消息报头,请求正文

d. 服务器接收HTTP请求,获取请求的应用和请求的资源

e. 服务器创建创建一个HTTP响应,返回客户机请求的资源,HTTP响应头包括响应头,消息爆头,响应正文

f. 客户机接收HTTP响应并解析资源,展现结果

2. Web访问相应的协议(HTTP与TCP,UDP,Socket之间的关系)

a. HTTP协议是为Web而生的,是应用层的协议;建立连接是依靠TCP协议,HTTP协议本身只发送和接收数据

  HTTP1.0协议每次请求都需要建立一次连接,请求完成则释放连接

  HTTP1.1协议则每次建立连接可以发送多次请求,每个请求可以重叠,无需等待第一个请求结束这可以发送第二个请求,两个请求同时进行

b. HTTP协议的底层是基于TCP协议,TCP协议是传输层的协议;

  使用TCP协议建立的连接是可靠的,使用UDP协议建立的连接是不可靠的

  TCP协议是通过三次握手实现的(客户端发送数据包syn=j并进入SYN_SEND状态; 服务器接收到syn包,同时发送ack包syn=j+1及syn包syn=k至客户端;客户端接收后再次发送ack包ack=k+1从而建立连接)

c. UDP和TCP都是传输层的协议,TCP协议和UDP协议只建立连接

d. Socket是套接字,并不是一种协议,使用Socket可以建立TCP或者UDP协议的连接

3. Yii2框架的启动流程

a. 访问入口文件

b. 访问配置文件

c. 加载核心类

d. 加载框架

e. 路由解析

f. 从数据库读取数据

g. 调用模板渲染页面

4. Yii2的组件

(1)入口脚本与配置文件(包括数据库配置等其他配置),类自动加载(自动加载核心类和框架),代码生成(gii代码生成器,可使用界面生成,也可使用命令生成)

(2)数据库迁移(完成数据库的结构的迁移及数据的导入和导出), 行为(包括执行前行为执行后行为,访问控制行为),模块(将系统分成小模块),控制器,模型(数据表模型,表单验证模型,其他业务模型),数据库操作(完成数据库的连接,增删改查,连表操作,关联操作,事务),助手类(字符串助手,数组助手,URL助手)

(3)视图(列表页视图ListView, 表格视图GridView,详情页视图DetailView,搜索页视图SearchModel,表单页视图FormModel),小部件(每一个页面都包含多个小部件StateWidget),前端资源(CSS和JS库)

(4)后台UI(使用UI框架构建后台系统页面,入Admintle)

(5)RestAPI(构建微服务架构)

(6)控制台程序(执行脚本修改数据,包括带参数,表格输出,格式化输出,选择运行,确认运行)

(7)安全(加密和解密)

(8)角色权限控制和数据权限控制(RBAC角色权限控制, 对每一条数据进行访问控制)

(9)打印(使用tcpdf,mpdf进行打印单据)

(10)导出Excel(使用框架自带的导出控件,使用php-excel表写导出助手类进行导出)

(11)文件上传(使用php编写文件上产程序, 使用框架自动的文件上传, 上产图片到七牛)

(12)使用gii生成模型:

 php yii gii/model --tableName=* --ns= --baseClass= --enableI18N=

Yii2总结的更多相关文章

  1. Yii2的深入学习--行为Behavior

    我们先来看下行为在 Yii2 中的使用,如下内容摘自 Yii2中文文档 行为是 [[yii\base\Behavior]] 或其子类的实例.行为,也称为 mixins,可以无须改变类继承关系即可增强一 ...

  2. 网站实现微信登录之回调函数中登录逻辑的处理--基于yii2开发的描述

    上一篇文章网站实现微信登录之嵌入二维码中描述了如何在自己的登录页面内嵌入登录二维码,今天的这篇文章主要是描述下在扫码成功之后微信重定向回网站后登录逻辑的处理,其实也就是验证身份信息,授权用户登录的逻辑 ...

  3. 网站实现微信登录之嵌入二维码——基于yii2开发的描述

    之前写了一篇yii2获取登录前的页面url地址的文章,然后发现自己对于网站实现微信扫码登录功能的实现不是很熟悉,所以,我会写2-3篇的文章来描述下一个站点如何实现微信扫码登录的功能,来复习下微信扫码登 ...

  4. yii2获取登录前的页面url地址--电脑和微信浏览器上的实现以及yii2相关源码的学习

    对于一个有登录限制(权限限制)的网站,用户输入身份验证信息以后,验证成功后跳转到登录前的页面是一项很人性化的功能.那么获取登录前的页面地址就很关键,今天在做一个yii2项目的登录调试时发现了一些很有意 ...

  5. 记一次nginx部署yii2项目时502 bad gateway错误的排查

    周六闲来无事,就试着安装和部署下yii2,安装过程没什么问题,但部署到nginx上时遇到了502 bad gatewary问题,折腾了半天才搞定.这个问题是我以前在部署yii2时没有遇到过的,因此记在 ...

  6. yii2的权限管理系统RBAC简单介绍

    这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...

  7. yii2 RESTful api的详细使用

    作者:白狼 出处:http://www.manks.top/yii2-restful-api.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...

  8. yii2 ActiveRecord多表关联以及多表关联搜索的实现

    作者:白狼 出处:http://www.manks.top/yii2_many_ar_relation_search.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明 ...

  9. yii2权限控制rbac之rule详细讲解

    作者:白狼 出处:http://www.manks.top/yii2_rbac_rule.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留 ...

  10. yii2组件之多图上传插件FileInput的详细使用

    作者:白狼 出处:http://www.manks.top/yii2_multiply_images.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...

随机推荐

  1. Y7000 (1)安装ubuntu1604遇到的问题

    1安装系统 分区的时候 /boot  不再是引导分区 换成 “为系统bois保留的分区” 这个分区取代 /boot 2第一次进系统没有图形界面 在刚开机 ubuntu系统时 按e 在splash后面空 ...

  2. TypeError: "x" is not a function

    https://stackoverflow.com/questions/32751209/jasmine-typeerror-is-not-a-function 信息 TypeError: " ...

  3. Spring整合ActiveMQ及多个Queue消息监听的配置

        消息队列(MQ)越来越火,在java开发的项目也属于比较常见的技术,MQ的相关使用也成java开发人员必备的技能.笔者公司采用的MQ是ActiveMQ,且消息都是用的点对点的模式.本文记录了实 ...

  4. Js获取当前页面URL各种参数

    JS获取当前页面URL各种参数 一:Location Location 对象包含有关当前 URL 的信息. Location 对象是 Window 对象的一个部分,可通过 window.locatio ...

  5. 从一个例子入门Mysql储存过程

    例子 -- 秒杀执行存储过程 DELIMITER $$ -- 将分隔符; 转换为 $$ -- 定义存储过程 -- 参数: in 输入参数; out 输出参数 -- row_count():返回上一条修 ...

  6. [翻译] .NET Standard 2.1 公布

    [翻译] .NET Standard 2.1 公布 原文: Announcing .NET Standard 2.1 校对: Cloud 自从大约一年前发布 .NET Standard 2.0以来,我 ...

  7. koa-router

    为了处理URL,我们需要引入koa-router这个middleware,让它负责处理URL映射. 我们把上一节的hello-koa工程复制一份,重命名为url-koa. 先在package.json ...

  8. Technical Development Guide---for Google

    Technical Development Guide This guide provides tips and resources to help you develop your technica ...

  9. 亲测可以永久破解2018版本的pycharm

    pycharm是很强大的开发工具,但是每次注册着实让人头疼.网络上很多注册码.注册服务器等等.但都只是一年或者不能用:为次有如下解决方案.亲测有效!!! 如果想让pycharm永久被激活,比如截止日到 ...

  10. spring security运行流程图(转)

    原文:http://blog.csdn.net/u011511684/article/details/31394493 示例下载地址:http://download.csdn.net/detail/u ...