X.d 笔记

小Web,大世界

0%

整理一下HTTP的基础知识:(二):响应状态码

响应码,整理了一份:

一般来说,我们平常见的响应码就那么几个,200/304/404/500等,一般是浏览器自身做的时候觉得体验不好,把一些响应码特殊处理了,并没有支接让你看到。

响应码主要分为以下5类

码段 类型
1XX 消息
2XX 成功状态
3XX 转向
4XX 请求错误
5XX 服务器内部错误

1XX

1XX状态码 是比较少用的,暂时不做多讲

状态码 类型 说明
100 Continue 需要继续处理
101 Switching   Protocols 切换协议,这时一般会响应一个Upgrade响应头。
阅读全文 »

整理一下HTTP的基础知识:(一):请求方法与命令调试

HTTP小结之一:请求方法与命令调试

天天都与HTTP交流,其实基本的东西也是应该了解了解的,这里主要参数IFEF的介绍整理一下,由于内容实在太多,就说下常用的。

总是听说HTTP有两个版本 HTTP1.0和HTTP1.1,其实即使是HTTP1.1也已经是老掉牙的版本了(1999),平时去Google搜个相关东西时,有的文章就很正经的来一句”这是HTTP1.1才支持的属性“,说的是不假,但就不能把一些无用的信息省一点吗,目前的客户端比如N年前的IE6与服务端,各种Apache,IIS等,有哪个还不支持1.1么?老的版本想找也找不到了。

本文小结一下HTTP的方法和调试。

请求方法

  • GET
  • POST
  • PUT
  • TRACE
  • OPTIONS
  • CONNECT
  • HEAD
  • DELETE
  • TRACK

有人可能见过这些方法:

  • PROPFIND
  • PROPPATCH
  • MKCOL
  • COPY
  • MOVE
  • LOCK
  • UNLOCK

这些谅是WebDav新定义的,WebDav是HTTP的扩展,也继承了HTTP,主要用于网络办公。面向对象讲究个继承,HTTP就像是个基类,WebDav就是继承了HTTP,进行了不少实例扩展,WebDav的实例可以实现一些类似FTP,SSH等类似的功能。

但一般实现一些高级功能可以再扩展WebDav去实现,

有实现了WebDav的具体的子类有 CalDav日历,CardDav名片,GroupDav群组.有些厂家定制了自己的专用服务器或Apache等服务器的扩展模块等去实现。当然,浏览器上的应用可能不一定支持这些方法,最简单的实现方法是tennet,一般是通过桌面客户端或者HTTP服务端底层来调用实现。

阅读全文 »

小小记录一下,在Win7下安装了 Apache + php 环境后,crul_init方法找不出,网上搜了不少方法都解决不了问题,于是去官方看了一下,多的不说了,直接看方法

  • 网络方法一:在httpd.conf里面加入
LoadFile "X:/php_path/ssleay32.dll" 
LoadFile "X:/php_path/libeay32.dll" 

本人尝试了不行

  • 网络方法二:把ssleay32.dll, libeay32.dll放到window/system32与window/SysWOW64下面

    本人尝试了还是不行

  • 个人的方法:
    libssh2.dll 复制到 apache/bin 目录
    尝试成功,当然每个人的情况可能不一样,当你找不到curl_init方法时,可以都试试

自己环境老坏,而且电脑又多,每次都上网找下别人的安装日记,搜索浪费很多时间,这次自己记下来算了。

准备:

  1. apache2.2 (说明:Apache2.4 window64位的官方不提供下载可以去,http://www.apachelounge.com/download/win64/http://www.apachehaus.com/cgi-bin/download.plx 下载 )
    下载地址:
    http://httpd.apache.org/download.cgi

  2. php5.4 (5.5只支持win7以上,apache2.—由于只下载的到apache2.2,所以就下了php5.4)
    下载地址
    http://windows.php.net/download/

  3. mysql(选配)
    下载地址
    http://www.mysql.com/downloads/

准备完成.

  1. 安装apache。一直点下一步就OK了

  2. 我习惯把PHP的目录解压到 “D:\Program Files\Apache Software Foundation\Apache2.2\php” 上,属于配好就很少用的东西,但又不可缺少,直接放在apache安装目录下了。

  3. 开httpd.conf文件,加上以下三行,要注意的是php5apache2_2.dll要在php目录内,不要拷到apache的module目录再引用,否则会启不来

LoadModule php5_module "D:/Program Files/Apache Software Foundation/Apache2.2/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .htm
阅读全文 »

访问者模式有一点点类似代理,一个对象可以访问另外一个对象,但比代理智能很多

访问者模式 Visitor

访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构可以保持不变。访问者模式适用于数据结构相对未定的系统,它把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由的演化。

访问者模式使得增加新的操作变的很容易,就是增加一个新的访问者类。访问者模式将有关的行为集中到一个访问者对象中,而不是分散到一个个的节点类中。当使用访问者模式时,要将尽可能多的对象浏览逻辑放在访问者类中,而不是放到它的子类中。访问者模式可以跨过几个类的等级结构访问属于不同的等级结构的成员类。

问题:

Many distinct and unrelated operations need to be performed on node objects in a heterogeneous aggregate structure. You want to avoid “polluting” the node classes with these operations. And, you don’t want to have to query the type of each node and cast the pointer to the correct type before performing the desired operation.

意图:

  • Represent an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates.
  • The classic technique for recovering lost type information.
  • Do the right thing based on the type of two objects.
  • Double dispatch
阅读全文 »

最简单的模式就是打印了 print("%s",str);

模板方法模式 Template Method

模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。

问题:

  • Two different components have significant similarities, but demonstrate no reuse of common interface or implementation. If a change common to both components becomes necessary, duplicate effort must be expended.

意图:

  • Define the skeleton of an algorithm in an operation, deferring some steps to client subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure.
  • Base class declares algorithm ‘placeholders’, and derived classes implement the placeholders.
阅读全文 »

虽然没开发过游戏,但我敢打赌这个模式是为游戏而生的。

策略模式 Strategy

策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类,各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客户端。

问题:

One of the dominant strategies of object-oriented design is the “open-closed principle”.

意图:

  • Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from the clients that use it.
  • Capture the abstraction in an interface, bury implementation details in derived classes.
阅读全文 »

从编码体验来看,状态模式应该是写面对程序员的“外观模式”~

状态模式 State

状态模式允许一个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一样。状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。状态模式需要对每一个系统可能取得的状态创立一个状态类的子类。当系统的状态变化时,系统便改变所选的子类

###问题:

A monolithic object’s behavior is a function of its state, and it must change its behavior at run-time depending on that state. Or, an application is characterixed by large and numerous case statements that vector flow of control based on the state of the application.

###意图:

  • Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.
  • An object-oriented state machine
  • wrapper + polymorphic wrappee + collaboration
阅读全文 »