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. 爬取伯乐在线文章(五)itemloader

    ItemLoader 在我们执行scrapy爬取字段中,会有大量的CSS或是Xpath代码,当要爬取的网站多了,要维护起来很麻烦,为解决这类问题,我们可以根据scrapy提供的loader机制. 导入 ...

  2. 一.html介绍

    一.html1.就是一个文本文档,写标记语言,由浏览器软件进行渲染得到想要的网页效果2.版本:h4,h5 二.常用的h5标签1.块状标签: p:段落 div:块 span:同行块 h1-h6:6级标题 ...

  3. 在Java中,将ExecutorService转为守护程序

    问题描述 我正在Java 1.6中使用一个ExecutoreService,简单地开始 ExecutorService pool = Executors.newFixedThreadPool(THRE ...

  4. Java NIO3:缓冲区Buffer

    在上一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如 ...

  5. for或者while的标记循环

    for或者while的标记循环 今天在写代码的时候,发现一个for循环前有一个字母,不知道这个是什么语法,后来查了一下,这个语法是用来实现标记循环的功能 这个是代码块 r:for(int rowNum ...

  6. java将秒转换为时分秒工具类

    需要一个接收时分秒的对象,如下: package com.dq.schoolcontract.utils; import com.sun.media.jfxmedia.control.VideoRen ...

  7. My ajaxwrapper tool

    Until recently, when I write ajax call, always write like below: $.ajax({ type: "post", da ...

  8. Java 小记 - 时间的处理与探究

    前言 时间的处理与日期的格式转换几乎是所有应用的基础职能之一,几乎所有的语言都会为其提供基础类库.作为曾经 .NET 的重度使用者,赖其优雅的语法,特别是可扩展方法这个神级特性的存在,我几乎没有特意关 ...

  9. 基于 Django的Ajax实现 文件上传

    ---------------------------------------------------------------遇到困难的时候,勇敢一点,找同学朋友帮忙,找导师求助. Ajax Ajax ...

  10. CPU-bound(计算密集型) 和I/O bound(I/O密集型)

    概念 概念I/O系统,英文全称为“Input output system”,中文全称为“输入输出系统”,由输入输出控制系统和外围设备两部分组成,是计算机系统的重要组成部分.在计算机系统中,通常把处理器 ...