PHPackages                             joinleft/myframe - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. joinleft/myframe

ActiveLibrary[Framework](/categories/framework)

joinleft/myframe
================

my frame

0.1.1(8y ago)014PHP

Since Oct 13Pushed 8y agoCompare

[ Source](https://github.com/miaoquna/myframe)[ Packagist](https://packagist.org/packages/joinleft/myframe)[ RSS](/packages/joinleft-myframe/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (2)Versions (4)Used By (0)

目录
--

[](#目录)

- [进阶学习](#%E8%BF%9B%E9%98%B6%E5%AD%A6%E4%B9%A0)
    - [HTTP协议详解](#HTTP%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3)
    - [请求报头](#%E8%AF%B7%E6%B1%82%E6%8A%A5%E5%A4%B4)
    - [php中获取请求信息](#php%E4%B8%AD%E8%8E%B7%E5%8F%96%E8%AF%B7%E6%B1%82%E4%BF%A1%E6%81%AF)
    - [http请求的几种方式](#http%E8%AF%B7%E6%B1%82%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E5%BC%8F)
        - [http响应返回](#http%E5%93%8D%E5%BA%94%E8%BF%94%E5%9B%9E)
    - [下载文件处理](#%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6%E5%A4%84%E7%90%86)
        - [普通下载](#%E6%99%AE%E9%80%9A%E4%B8%8B%E8%BD%BD)
        - [断点续传](#%E6%96%AD%E7%82%B9%E7%BB%AD%E4%BC%A0)
- [PHP5](#php5)
    - [1. 新增特性](#1-%E6%96%B0%E5%A2%9E%E7%89%B9%E6%80%A7 "新增特性")
        - [1.1 类的高级用法](#11-%E7%B1%BB%E7%9A%84%E9%AB%98%E7%BA%A7%E7%94%A8%E6%B3%95)
            - [instanceof 操作符](#instanceof-%E6%93%8D%E4%BD%9C%E7%AC%A6)
            - [final 关键字](#final-%E5%85%B3%E9%94%AE%E5%AD%97)
            - [clone 关键字](#clone-%E5%85%B3%E9%94%AE%E5%AD%97)
            - [const 关键字](#const-%E5%85%B3%E9%94%AE%E5%AD%97)
            - [静态成员和静态方法](#%E9%9D%99%E6%80%81%E6%88%90%E5%91%98%E5%92%8C%E9%9D%99%E6%80%81%E6%96%B9%E6%B3%95)
            - [抽象类](#%E6%8A%BD%E8%B1%A1%E7%B1%BB)
            - [抽象方法](#%E6%8A%BD%E8%B1%A1%E6%96%B9%E6%B3%95)
            - [对象类型提示](#%E5%AF%B9%E8%B1%A1%E7%B1%BB%E5%9E%8B%E6%8F%90%E7%A4%BA)
            - [函数调用](#%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8)
            - [继承类实现Iterator接口](#%E7%BB%A7%E6%89%BF%E7%B1%BB%E5%AE%9E%E7%8E%B0Iterator%E6%8E%A5%E5%8F%A3)
            - [\_\_autoload()方法](#__autoload%E6%96%B9%E6%B3%95)
            - [foreach 函数支持引用](#foreach-%E5%87%BD%E6%95%B0%E6%94%AF%E6%8C%81%E5%BC%95%E7%94%A8)
            - [Tidy扩展](#tidy%E6%89%A9%E5%B1%95 "Tidy扩展")
    - [2. 基础用法](#2-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95 "基础用法")
        - [2.1 变量](#21-%E5%8F%98%E9%87%8F)
            - [变量的间接引用](#%E5%8F%98%E9%87%8F%E7%9A%84%E9%97%B4%E6%8E%A5%E5%BC%95%E7%94%A8 "变量的间接引用")
            - [管理变量](#%E7%AE%A1%E7%90%86%E5%8F%98%E9%87%8F "管理变量")
            - [超全局变量](#%E8%B6%85%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F "超全局变量")
        - [2.2 基础数据类型](#22-%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B "超全局变量")
            - [int 整型](#int-%E6%95%B4%E5%9E%8B "int 整型")
            - [float 浮点型](#float-%E6%B5%AE%E7%82%B9%E5%9E%8B)
            - [string 字符串](#string-%E5%AD%97%E7%AC%A6%E4%B8%B2)
            - [bool 布尔型](#bool-%E5%B8%83%E5%B0%94%E5%9E%8B)
            - [null](#null)
            - [resources](#resources)
            - [arrays](#arrays)

---

进阶学习
====

[](#进阶学习)

HTTP协议详解
--------

[](#http协议详解)

超文本传输协议（httpwatch工具进行抓取），是建立在 tcp/ip 协议基础上

超文本传输协议之所以叫超文本，是因为它不只可以传输文本，还可以传输音频视频等其他格式数据

所有的web开发的数据传输都是依赖于 http 协议

协议版本

```
 1、http 1.0 （短链接：已经放弃该协议，建立链接后数据发送之后直接断开）
 2、http 1.1 （长链接:长链接是会保持链接状态，跟服务器建立链接，如果服务器没有响应是有超时反馈的）

```

一个web页面的请求会发起多次请求，首先请求的是页面文本，之后会请求图片等一系列资源

常识：图片的返回值是以二进制的形式返回的

请求报头
----

[](#请求报头)

常用请求报头

```
GET /a.html HTTP/1.1            请求类型以及请求协议版本
Accept:*/*                      数据类型（标识发送的数据类型）
Referer:http://www.a.com        来源地址（用处很大，经常用来做防盗链功能，服务器可以判断来源地址进行访问限制）
Accept-Language:zh-cn           页面语言
User-Agent:Mozilla/4.0****      浏览器内核，操作系统信息（服务器可以获取这些信息并做相应的处理）
Accept-Enocding:gzip,deflate    数据压缩格式（就是浏览器会对发送的数据进行压缩，web服务器要有相应的格式的解压功能）
Host:localhost:80               主机名：端口，端口是可以忽略php默认80端口，传输该数据用于 tcp/ip 解析用来做域名解析使用
Connnection:Keep-Alive          链接状态：默认就是长链接，不会与服务器立即断开

消息体（通常用来存放post数据）

```

php中获取请求信息
----------

[](#php中获取请求信息)

```

```

http请求的几种方式
-----------

[](#http请求的几种方式)

PSOT、GET、HEAD、OPTIONS、DELETE、TRACE、PUT

常用有：PSOT、GET

POST和GET的区别：

```
1、post的请求数据是放在http协议的消息体里边的

2、HTTP协议本身是没有对传输数据进行限制，主要是浏览器在对get和post请求做限制

3、get请求最多只能传输 2k+35 数据，post请求没有进行数据限制

```

### http响应返回

[](#http响应返回)

状态码：例如：200 也就是请求状态，这个参考网上的解释，其他的不再解释

图片状态304是怎么产生的呢？

浏览器发送图片请求时会检测本地是否缓存该文件如果存在该文件会请求时发送 If-Modified-Since 参数用来标识缓存时间， web服务器端会校验浏览器发送过来的 If-Modified-Since参数，判断该文件是否和服务器上的图片时间是否一致，如果一致则不再进行图片返回直接返回 304 状态码，否则会把图片传输给浏览器，并返回 200 状态码

常见响应返回值解释

```
Location:http://......
Server:nginx    web服务器类型
Content-Encoding:gzip    web服务器返回数据压缩使用的算法，供浏览器解码使用
Content-Length:20121     返回的数据大小，除了数据本身的大小，还包括响应头的大小
Content-Language:zh-cn    返回的数据语言
Content-Type:text/html,charset=GB2312 返回的html，以及文件的编码格式。当然也可以返会的是image/jpeg
Content-Type:image/jpeg   当然也可以返回 image/jpeg 图片 （全部以文件mime类型来代表）
Last-Modified:Thu, 04 May 2017 09:09:32 GMT    表示浏览器请求资源的最新时间
Refresh:1;url=http://www.baidu.com    如果有这个返回值代表：页面响应之后会在1秒之后重定向到新的网址
Expires:-1                下边这三个选项是一组用来控制浏览器 禁止 缓存该页面，为什么有三个？
Cache-Control:no_cache    是因为不同的浏览器 禁止 缓存不一样，这是为了兼容不同的浏览器设置禁用页面缓存
Pragma:no_cache            这三个选项可以兼容目前常见的浏览器

```

下载文件处理
------

[](#下载文件处理)

### 普通下载

[](#普通下载)

```
