由于工作中,做微信小程序需要我自己写一些后台代码。并且公司后台用的是php。所以我决定在周末和下班后抽空学习php。一开始,我想找一些入门视频来学,然后发现好像效率不是很好。不如看书来得痛快。(主要是没先看一下文档了解php,还有就是看视频真容易犯困QAQ)。于是乎,在网上搜索php入门书籍推荐。发现了这本《跟兄弟连学PHP》。稍微试读了一下。感觉不错。准备用它当敲门砖。

  首先看了它的第一章。大概是讲一些学习PHP的预热知识。在第一章的小结中是如下要点:

  • W3C标准
  • 动态网页开发所需的web构件,以及每种构件在web开发中的用途。
  • Web的工作原理,以及网站的运行过程。
  • HTTP协议与web的关系

接下来,我试着写下我的一些理解:

1.W3C标准

W3C:万维网联盟(World Wide Consortium)。主要是研究web规范的。她的主要推行的规范有:HTML,CSS,XML,XHTML,DOM等。这些都可以被浏览器解析。

不过,在推行XHTML时,各大浏览器厂商不怎么鸟她,真叫她好没面子。不过web有一套统一的规范对于开发者和用户来说都是件好事。

2.动态网页开发所需的web构件。

  1. 首先得有个浏览器(Chrome,Firefox,Safari, IE, Opera五大浏览器),个人是偏爱chrome。ES6在他上面用得很舒服。
  2. HTML (超文本标签语言:HyperText Mark-up Language)用来构成网页文档。通过标签来标识超链接,文字,图片,音频,视频,表单web元素等。
  3. CSS(层叠样式表:Cascading Style Sheet)用来美化网页的表现。她不能离开HTML单独工作。
  4. JavaScript(和Java没什么关系)是客户端的脚本语言,用来写一些动效以及与用户交互。可以嵌入到html中。
  5. 客户端准备好了,轮到服务端了。web服务器。用来处理客户端发出的请求。(Apache服务器,Nginx服务器,IIS,Tomcat等服务器)
  6. PHP(HyperText Preprocessor)超文本预处理器,属于服务端的脚本语言。主要用来与数据库交互。

数据库,常见的优MySQL,Oracle,SQL Server等。

3.Web的工作原理,以及网站的运行过程

浏览器向服务器发送http请求,如果没有php 请求,web服务器直接返回所需的静态页面。如果有,web服务器就委托PHP应用程序服务器处理 。和数据库交互拿到数据 返回给web服务器。然后服务器响应返回数据。浏览器将得到的静态html代码渲染出来。

4. HTTP协议与web的关系

HTTP(超文本传输协议),他是OSI中的应用层协议。基于TCP/IP协议。目前互联网使用最多的是HTTP1.1。

浏览器与web服务器的http端口先建立TCP套接字连接。通过套接字,客户端向服务器发送请求报文(请求行,请求头,空行,请求数据),

web服务器会解析请求,定位资源。然后将资源副本写到TCP套接字。客户端再读取。响应报文(状态行,响应头,空行,响应数据)。

之后,web服务器会主动关闭TCP套接字释放TCP连接。客户端被动关闭。

先写到这里,第一次写博客,记录自己的成长。

我的PHP学习之路的更多相关文章

  1. jQuery学习之路(1)-选择器

    ▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...

  2. Android开发学习之路-RecyclerView滑动删除和拖动排序

    Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...

  3. RPC远程过程调用学习之路(一):用最原始代码还原PRC框架

    RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...

  4. webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

    webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...

  5. [精品书单] C#/.NET 学习之路——从入门到放弃

    C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...

  6. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  7. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息.     ...

  8. Redis——学习之路二(初识redis服务器命令)

    上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   s ...

  9. 踏上Salesforce的学习之路(一)

    相信通过前面的学习,大家已经拥有了一个属于自己的Salesforce开发者账号,下面,我们将用这个账号正式踏上Salesforce的学习之路. 首先,点击网址:https://developer.sa ...

  10. ReactNative新手学习之路07ListView_ renderHeader使用StaticContainer

    react native新手学习之路07ListView_ renderHeader使用StaticContainer 1.某些特殊场景需要用ScrollView滚动和ListView配合但是不幸运的 ...

随机推荐

  1. AndroidStudio EventBus报错解决方法its super classes have no public methods with the @Subscribe

    首先说明,以前我用eventBus的jar包写得项目demo,前几天就写了一个EventBus的实例,这次我没用jar包,直接用gradle引用的,可是demo写完了,报错: its super cl ...

  2. Glide中的回调:targets

    Glide隐藏了一大推复杂的在后台的场景,Glide做了所有的网络请求和处理在后台线程中,准备好了切回到ui线程后更新ImageView. 假设ImageView不再是图像的最后一步.我们只要Bitm ...

  3. [ Linux ] user, password, sudoers

    - 1. Add Linux user,  setup password http://linux.vbird.org/linux_basic/0410accountmanager.php - 2. ...

  4. pandaboy玩pandas

    基于python的三方库pandas的excel表二次开发 import numpy as np import pandas as pd import time from pandas import ...

  5. 原生ajax实现文件上传

    视图层 JS 函数:    <input type="file" onchange="sendFile()" id="up" /> ...

  6. [UVa10188]Automated Judge Script

    题目大意:叫你写一个判断答案的系统. 解题思路:模拟即可.AC条件为,答案条数相等,所有字符相等.PE条件为,答案条数可能不等,所有数字字符相等.其他为WA. UVa现在的C++已经不支持gets了, ...

  7. SSH的理解

    SSH的利用,通俗的讲就是一个网络传输数据的加密协议,目前有一些基于SSH的构建了服务器-客户端的软件工具,在Windows上装一个客户端,Linux上则为服务端,这样就可以把Windows上写的内容 ...

  8. 理解Swift中map 和 flatMap对集合的作用

    map和flatMap是函数式编程中常见的概念,python等语言中都有.借助于 map和flapMap 函数可以非常轻易地将数组转换成另外一个新数组. map函数可以被数组调用,它接受一个闭包作为參 ...

  9. 【Hibernate学习】 —— 抓取策略(注解方式)

    当应用程序须要在关联关系间进行导航的时候.hibernate怎样获取关联对象的策略. 抓取策略的方式: FetchType.LAZY:懒载入.载入一个实体时.定义懒载入的属性不会立即从数据库中载入. ...

  10. JAVA学习第二十七课(多线程(六))- 多生产者多消费者问题(JDK1.5新特性)

    多生产者多消费者问题 以生产馒头 消费馒头为例. class Resource { private String name; private int count = 1; private boolea ...