• 微信:
  • hai764003
  • QQ:
  • 511211014
  • E-mail:
  • jaquery@163.com

案例总数51

访问总数312411

收藏总数310942

HTTP协议,HTTP协议是什么?返回列表

上传时间:2015-02-02 内容关键字:

第二步:实现接口中的方法:


class Http implements Proto{

public function conn(){}

public function get(){}

public function post(){}

public function close(){}

}


第三部:既然要发送信息,必须模拟telnet中的三大部分,请求行,头信息,主体信息


class Http implements Proto{

protected function setLine(){}

public function setHeader(){}   //因为以后这个方法要在类外调用,所以用public

protected function setBody(){}

.........

}


第四部:第三部中请求行,头信息和主体信息用方法造好以后,这些信息存在哪儿呢?就存放在这些属性里。


class Http implements Proto{

protected $line = array();

protected $header = array();

protected $body = array();

}


第五步:操作conn方法,功能包括,分析url 和 连接socket,分别把分析结果和连接句柄存放在对应属性里。


class Http implements Proto{

protected $url = null;

protected $fh = null;

protected $version = 'HTTP/1.1';


public function conn($url) {

$this->url = parse_url($url);  //分析url并保存

if(!isset($this->url['port'])) {   //判断端口,如果url分析结果中没有,则默认添加为80.

$this->url['port'] = 80;

}

// 判断query

if(!isset($this->url['query'])) {

$this->url['query'] = '';

}

//连接socket并保存

$this->fh = fsockopen($this->url['host'],$this->url['port'],$this->errno,$this->errstr,3);

}

}


第六步:我们利用构造函数,初始化的时候就让他把sockopen连接完毕,因为conn中已经包含了setLine的所有 信息,我们顺便把setLine也调用设置。

 

小海哥推荐你看: 博客园  php教程分享网站  phpmywind  脚本之家