http server原理

每个httpserver只有一个listen socket,这个一直存在。
当accept时,返回一个socket,这个是connection socket, 每个TCP连接一个connection socket., 浏览器的每次请求都会有一个connection socket被建立


客户端向服务器发送数据,服务器根据socket,来进行通信。但是,如果客户端向服务器发送的数据量比较大,服务器端没有接收完毕时,可以writeback吗?

我猜测即使可以written back,浏览器也不会反应,因为它正在写数据呢!!
这样,就造成了浏览器工作的不正常!!!

服务器writte back后,就会把socket清掉,等待下一次的http连接.......

upload未完成时能不能通知浏览器,完全有http协议实现来决定,http中有关于这个的协定吗??
查找一下!!!


浏览器向服务器发送数据时,如果服务器不接收,客户端的write函数就block住了,这样就不会返回,也就无法读取服务器写回来的数据。
但是,服务器一旦关掉socket, 浏览器就会知道,这样有可能造成浏览器的报错!!!!


TCP是双向连接,我可以可以关掉一个方向的(client到服务器端的连接),这样,浏览器就不会上传了吗?
就是不知浏览器是否支持这样的操作.........
汗,不能这样做:
Closing the input channel of your connection is riskier, unless you know the other
side doesn’t plan to send any more data. If the other side sends data to your closed
input channel, the operating system will issue a TCP “connection reset by peer” mes-sage back to the other side’s machine, as shown in Figure 4-21. Most operating sys-tems treat this as a serious error and erase any buffered data the other side has not
read yet. This is very bad for pipelined connections.

做一个form,上传到163,巨大的文件,看有什么效果?


2013.1.13


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值