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也调用设置。