首页新闻找找看学习计划

http协议相关问题:当我们向网站上传文件后客户端与服务器发生了什么事呢?

0
[已解决问题] 解决于 2013-11-13 17:03

当我们向某个网页以post方式提交一份带有上传本地文件的表单后。
接下来客户端与服务器做了什么呢,它们是怎么把文件弄到服务器那边去的?有可能我们的文件很大,不可能封装成一次http请求就能把文件弄过去,那到底工作原理是怎么样的?

我在网上找了很久都没找到,我是新手,看那些资料头晕晕的。
麻烦对这个比较熟悉的,跟我解释一下,可以吗?

yeopp的主页 yeopp | 菜鸟二级 | 园豆:319
提问于:2013-11-13 15:44
< >
分享
最佳答案
0

没有代理服务器,没有 SSL,忽略掉 HTTP 安全:

1,域名解析,即将域名解析成 ip 地址;

2,建立 TCP 连接;

3,发送 http header 报文;

4,从文件读取固定大小的字节流,发送数据;

5,重复执行 4,直道读取完毕或出现错误;

6,从连接上读取服务器的响应数据;

7,解析响应数据的 http header 部分;

8,根据返回的 http header 决定是否继续从连接上读取数据;

9,关闭 TCP 连接.

奖励园豆:5
Launcher | 高人七级 |园豆:45040 | 2013-11-13 16:06

照您的意思说,如果提交的文件很大,那不是这个网页提交执行时间会很长了?

yeopp | 园豆:319 (菜鸟二级) | 2013-11-13 16:11

@yeopp: 在相同的条件下,文件越大,提交执行的时间就会越长.

Launcher | 园豆:45040 (高人七级) | 2013-11-13 16:14

@Launcher: 比如我要上传一个很大的文件,服务想要先让页面跳转,先接收除文件外的其他数据,文件让它断接上传,然后造诉我页面没死,发出一个提示跟我说文传正在上传中甚至可以断点再传。像这样的您知道大概要怎么实现吗?

yeopp | 园豆:319 (菜鸟二级) | 2013-11-13 16:21

@yeopp:关于你说的这个问题,实现方式很多,比如使用 url,header或body 来发送除文件以外的数据.跳不跳转都没关系,关键是把上传数据的操作放置在后台执行,比如用js.

 断点续传:http://blog.csdn.net/sendy888/article/details/1719105

Launcher | 园豆:45040 (高人七级) | 2013-11-13 16:31

@Launcher: 谢谢

yeopp | 园豆:319 (菜鸟二级) | 2013-11-13 17:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册