計算機中對流的理解

數據的表示

數據可經過二進制0或1表示。一個比特位能夠表示0或1。
一個字節等於8個比特位。ascii編碼規範是一個字符等於一個字節。
也就是說能夠經過abcdef...1234...這字符來表示數據。html

流的表示

數據交換的過程就是流。這個過程的以下:
image.png前端

能夠在緩衝區對流進行操做。
Java語言的Stream類,就是對這些操做進行抽象封裝。node

數據從瀏覽器到服務器的編碼過程

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中上傳文件
前端大文件上傳服務器

相關文章
相關標籤/搜索