您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Golang文件上传:如果文件太大,则关闭连接

Golang文件上传:如果文件太大,则关闭连接

大多数客户端在完成请求写入之前不会读取响应。响应来自服务器的错误不会导致这些客户端停止写入。

net / http服务器支持100继续状态。要使用此功能,服务器应用程序应在读取请求正文之前以错误响应:

func handler(w http.ResponseWriter, r *http.Request) {
  if r.ContentLength > MaxFileSize {
     http.Error(w, "request too large", http.StatusExpectationFailed)
     return
  }
  r.Body = http.MaxBytesReader(w, r.Body, MaxFileSize)
  err := r.ParseMultipartForm(1024)

  // ... continue as before

如果客户端发送了“期望:100-继续”标头,则客户端应在写入请求正文之前等待100继续状态。当服务器应用程序读取请求正文时,net / http服务器自动发送100继续状态。服务器可以通过在读取请求之前以错误答复来阻止客户端编写请求主体。

net / http客户端不支持100继续状态

如果客户端未发送期望标头,并且服务器应用程序从请求处理程序返回而未读取完整的请求正文,则net / http服务器将读取并丢弃最多256 << 10个字节的请求正文。如果未读取整个请求正文,则服务器将关闭连接。

Go 2022/1/1 18:13:34 有1084人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶