Webkit之网络模块

 根据项目需要:

介绍下Loader模块和Network模块:

Loader模块是Network模块的客户。Network模块提供了资源的获取和上传功能,获取的资源可能来自网络,本地文件或者缓存。
Network目录下的ResourceHandleClient类是ResourceHandle类的客户,它定义了一些列的虚函数,这些虚函数是ResourceHandle的回调,继承类实现这些接口。ResourceHandleClient类是Network模块提供给其它模块的接口,其它模块可以继承这个类,实现里面的虚函数,进而跟Network模块进行交互。
ResourceHandleClient的接口同网络传输过程息息相关,一般为某一个网络事件对应的回调。下面是其中的一些接口:
void willSendRequest(ResourceHandle*, ResourceRequest&, const ResourceResponse& /*redirectResponse*/)
//一般情况下,在发起网络请求前调用,可以设置特定的http头部,比如user agent等,在重定向请求的时候,也会自动调用

void didSendData(ResourceHandle*, unsigned long long /*bytesSent*/, unsigned long long /*totalBytesToBeSent*/)
//上传数据的时候,在TCP write事件,向对方发送数据的时候调用,loader可以根据这个回调显示上传进度。

void didReceiveResponse(ResourceHandle*, const ResourceResponse&)
//收到第一个响应包,此时至少http的部分头部已经解析,loader根据响应的头部信息请求是否成功等。

void didReceiveData(ResourceHandle*, const char*, int, int /*encodedDataLength*/)
//收到HTTP响应数据,类似tcp的read事件,来响应http数据,Network的设计机制是来一段数据上传一段数据。

void didFinishLoading(ResourceHandle*, double /*finishTime*/)
//加载完成,数据已经完全接收。

void didFail(ResourceHandle*, const ResourceError&)
//加载失败

void didReceiveAuthenticationChallenge(ResourceHandle*, const AuthenticationChallenge&)
//要求用户鉴权

你可能感兴趣的:(tcp,网络,user,webkit,NetWork)