PHP介绍(PHP入门1)
BS架构和CS架构
B:Browser:浏览器
S:Server:服务器
C:Client:客户端
- BS
浏览器和服务器的关系,通过浏览器来访问服务器,比如:百度、新浪...
优点:只要有浏览器就能访问服务器,方便
缺点:大部分的逻辑都在服务器上
- CS
客户端和服务器的关系,通过客户端软件来访问服务器,比如:QQ、微信
优点:部分逻辑在客户端运行,减轻了服务器的负担
缺点:要安装客户端软件,麻烦
静态网站与动态网站
- 静态网站
没有数据交互的网站,不支持数据传输(页面的后缀为.html)
- 动态网站
支持数据交互的网站(页面的后缀为.php与.jsp)
客户端与服务端
客户端向服务器发送请求,必须从一个端口出去,从那个端口出去由客户端操作系统决定
服务器上的请求端口必须是确定的
Web服务器的端口号默认为80端口
MySQL服务器的端口号默认为3306端口
FTP的端口号默认为21端口
前台和后台
- 前台
浏览者看到的页面(显示数据)
- 后台
管理员看的页面(操作数据)
PHP的优点
跨平台:可以在window上运行,也可以在Linux上运行
开源:源码开放(没有版权)
语法简单,上手快
运行在服务器端(客户端只需要浏览器就可以访问网站)
非常快速的开发网站
PHP是解释性语言还是编译型语言?
一门语言到底是解释型还是编译型取决于是否保存了可执行代码
- 解释性语言
读取源码--词法分析--语法分析--编译成机器语言--执行
- 编译型语言
将可执行的代码放在文件中(可见)
读取源码--词法分析--语法分析--编译成机器语言--保存可执行的代码--执行
第一次执行,解释型语言速度快,第二次执行编译型语言速度快(第二次编译型语言直接执行保存的代码)
- PHP语言
PHP将opcode缓存在内存中(不可见)
读取源码--词法分析--语法分析--编译生成opcode缓存--由zend engine执行
PHP介绍(PHP入门1)的更多相关文章
- .NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一)
在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下FluentValidation验证组件.那里只是概述了一下,并没有对其使用和强大功能做深入研究 ...
- freemarker语法介绍及其入门教程实例
# freemarker语法介绍及其入门教程实例 # ## FreeMarker标签使用 #####一.FreeMarker模板文件主要有4个部分组成</br>#### 1.文本,直接输 ...
- (转)私有代码存放仓库 BitBucket介绍及入门操作
转自:http://blog.csdn.net/lhb_0531/article/details/8602139 私有代码存放仓库 BitBucket介绍及入门操作 分类: 研发管理2013-02-2 ...
- NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(转载)
原文地址:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_FluentValidation_1.html 阅读目录 1.基本介绍 ...
- 读写Word的组件DocX介绍与入门
本文为转载内容: 文章原地址:http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html 开源Word读写组件DocX介绍与入门 阅读 ...
- [转帖]Druid介绍及入门
Druid介绍及入门 2018-09-19 19:38:36 拿着核武器的程序员 阅读数 22552更多 分类专栏: Druid 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议 ...
- Redis介绍及入门安装及使用
Redis介绍及入门安装及使用 什么是Redis Redis is an open source (BSD licensed), in-memory data structure store, use ...
- Mysql数据库的简单介绍与入门
Mysql数据库的简单介绍与入门 前言 一.下载与安装 1.下载 官网下载MYSQL5.7.21版本,链接地址https://www.mysql.com/downloads/.下载流程图如下: 找到M ...
- Nodejs学习笔记(十四)— Mongoose介绍和入门
目录 简介 mongoose安装 连接字符串 Schema Model 常用数据库操作 插入 更新 删除 条件查询 数量查询 根据_id查询 模糊查询 分页查询 其它操作 写在之后... 简介 Mon ...
- 【python自动化第一篇:python介绍与入门】
一.python介绍以及发展史 1.1 python的介绍: 简单点来说吧,python这玩意儿是一个叫做Guido van Rossum的程序猿在1989年的圣诞打发时间而决心去开发的一个脚本编程 ...
随机推荐
- vue2.0 学习 ,开始学习
先看官网的介绍上面的教程 https://cn.vuejs.org/v2/guide/ 尝试 Vue.js 最简单的方法是使用 JSFiddle Hello World 例子.你可以在浏览器新标签 ...
- (WPF) Textbox 每次输入触发事件处理
1. Code behind. protected void TextBox1_TextChanged(object sender, EventArgs e) { Label1.Text = Ser ...
- Maximum Product Subarray 最大连续乘积子集
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- String和StringBuffer有什么区别
首先,String和StringBuffer主要有2个区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringB ...
- 安装 GraphicsMagick
yum -y install GraphicsMagick GraphicsMagick-devel 实际试了试,上面yum的方式不好使,下面是我实际安装过程: 1.下载最新版 wget ftp:// ...
- JpaRepository 查询规范
1.JpaRepository支持接口规范方法名查询.意思是如果在接口中定义的查询方法符合它的命名规则,就可以不用写实现,目前支持的关键字如下. Keyword Sample JPQL snippet ...
- 海量数据处理面试题(2) 将用户的query按出现频度排序
问题描述: 有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复.要求你按照query的频度排序. 分析:一般海量数据采用分治法时,都要用到哈希,将相 ...
- kotlin lateinit
声明变量: private var a: String? = "" 或者:private lateinit var a: String // 使用前先初始化
- 沉淀再出发:关于IntelliJ IDEA使用的一些总结
沉淀再出发:关于IntelliJ IDEA使用的一些总结 一.前言 在使用IDEA的时候我们会发现,如果我们先写了一个类的名字,而没有导入这个类的出处,就会提示出错,但是不能自动加入,非常的苦恼,并且 ...
- 在Eclipse中通过build.xml导入工程
http://www.zihou.me/html/2012/10/18/7868.html