lionel chang

导航

BT下载项目简介

该项目由三部分组成:文件解析模块,连接建立模块和数据传送模块。

一.文件解析模块

二.连接建立模块

概述:构造HTTP的GET请求报文,取得各个下载者的IP地址和端口号。

问题:

1.HTTP协议

(1).协议的格式

包括请求报文和响应报文,请求报文由本软件构造,响应报文由服务器端构造。

对响应报文使用tcpdump抓包,具体命令为:

tcpdump -A tcp port 80

(2)协议的字段信息

a.connection

指定为长连接与短连接,只有HTTP/1.1才能支持。若为长连接则填写keepalive,短连接则填写close.

b.cookie

首次登录一个使用cookie的网站时,网站会产生一个唯一的识别码,并在数据库中产生一个对应的项目。然后在响应报文中添加一个set-cookie字段,字段值为刚才所说的标识码。客户端浏览器会将其存放到指定的文件中,下次登录该网站时,浏览器就会在请求报文中添加一个cookie字段,网站会通过该字段识别对应的用户,使用户不必每次都有需要登录。

c.其他字段

content

user-agent

accept-language

host

accept:*/*

Accept-Encoding

(3)为什么要使用HTTP协议?

这要从HTTP的特点说起,HTTP有以下的特点:

a.无连接:虽然使用了TCP,但是它并不需要建立连接

b.无状态:第二次访问一个页面跟第一访问时服务器的响应相同。这简化了服务器的设计,是服务器更容易支持大量并发的HTTP请求。

c.支持C/S模式

d.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

e.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。例如支持HTML,TEXT等不同的格式。

三.数据传送模块

并发问题

分片问题


posted on 2012-10-05 11:40  woshizyl  阅读(186)  评论(0编辑  收藏  举报