首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的HttpServer流请求体

Java中的HttpServer流请求体
EN

Stack Overflow用户
提问于 2013-10-11 14:34:43
回答 1查看 1.4K关注 0票数 4

对于我来说,在读取请求体之前,所有的数据都存储在哪里,这对我来说非常有趣。

例如,一个文件正在上传到服务器。Java程序接收这个文件。如果文件很大- 100 GB,就不可能将整个文件内容存储在缓冲区中。

Java是否从远程计算机中流这个文件?我的意思是远程计算机发送一小部分数据,Java接收到这一部分并等待下一部分。当远程计算机决定服务器读取第一部分时,它发送第二部分数据等。

Java及其HttpServer是以这种方式工作,还是像Apache+PHP一样将整个文件存储在磁盘上?

EN

回答 1

Stack Overflow用户

发布于 2013-12-18 12:46:34

您要寻找的机制由操作系统的TCP堆栈实现。在发送端和接收端都使用缓冲区。

TCP通常类似于接收机器对发送者的回复,"OK,got,now,send the next part" (也称为ACK数据包)。这种机制还可以根据连接的速度来调整传输速度(而不是发送数据太快,导致数据包丢失)。

这是一台润滑良好的机器,但如果出了问题,它通常表现为超时。(在您的示例中,如果您在处理请求体之前等待了很长时间,而不是读取,那么发送机器就会放弃)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19320812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档