计算机中对流的理解

数据的表示

数据可通过二进制0或1表示。一个比特位可以表示0或1。
一个字节等于8个比特位。ascii编码规范是一个字符等于一个字节。
也就是说可以通过abcdef...1234...这字符来表示数据。

流的表示

数据交换的过程就是流。这个过程的如下:

image.png

可以在缓冲区对流进行操作。
Java语言的Stream类,就是对这些操作进行抽象封装。

数据从浏览器到服务器的编码过程

image.png

formData上传文件的过程

POST /upload.do HTTP/1.1
User-Agent: SOHUWapRebot
Accept-Language: zh-cn,zh;q=0.5
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Content-Length: 60408
Content-Type:multipart/form-data; boundary=ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC
Host: w.sohu.com
 
--ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC
Content-Disposition: form-data;name="desc"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
 
[......][......][......][......]...........................
--ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC
Content-Disposition: form-data;name="pic"; filename="photo.jpg"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
 
[图片二进制数据]
--ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC--

Content-Type是内容的MIME类型。
Content-Type: multipart/form-data表示附件上传。附件通常是二进制文件。
Content-Transfer-Encoding是内容传输编码。
Content-Disposition在请求中是指每个表单域信息的格外信息。
boundary是处理边界。

流在nodejs的处理

Node.js 中流操作实践
eggjs获取上传的文件
一文搞懂eggjs中上传文件
前端大文件上传

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容