@techtipsvn
Go Blog · 14/10/2026

Code Go không đọc body chậm gần 5 lần qua HTTP/1, Go 1.27 tự sửa

Code Go không đọc body, mỗi request lại mở kết nối mới.

2026-10-1510 slide2 phút đọcGiải thích
Slide bìa: Code Go không đọc body chậm gần 5 lần qua HTTP/1, Go 1.27 tự sửaSlide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10
cuộn, vuốt, hoặc phím ←→01 / 10

Cùng một bài, đọc bằng chữ. Nhanh hơn và tìm lại được bằng Ctrl+F.

100 request HTTP/1 trên Go 1.26. Cùng code, Go 1.27: khoảng 150 ms.

Body là gì

Body là phần nội dung server trả về

http.Get trả về status và header trước. Phần nội dung phía sau gọi là body. Nó vẫn nằm trên kết nối cho tới khi code đọc.

Đoạn code chậm

Hàm này không đọc body

Kết nối mới thì tốn

Mở kết nối mới mất vài lượt đi về

Với HTTPS, máy bạn và server phải hỏi đáp vài lượt qua mạng để thiết lập bảo mật. Xong mới gửi được request. Vì vậy HTTP/1 giữ kết nối mở cho request sau.

Go 1.26 trở về trước

Vì sao kết nối bị bỏ

  1. Nối đuôiHTTP/1 gửi các response nối đuôi nhau trên cùng một kết nối
  2. Còn dưBody chưa đọc hết thì response sau bị kẹt phía sau phần dư
  3. Mở mớiGo 1.26 bỏ kết nối đó, mở kết nối mới cho request sau
Cách cũ

Đọc bỏ phần body còn lại

Go 1.27 tự đọc bỏ phần dư

Từ Go 1.27, chỉ cần Close như cũ. Go tự đọc phần body còn lại ở nền, tối đa 50 ms hoặc 256 KB, rồi dùng lại kết nối.

Code gọi HTTP trong Go

Nên

Luôn Close body, kể cả khi không đọc nó

Chạy go version, xem đã lên 1.27 chưa

Không nên

Đọc bỏ body với HTTP/2, nó không bị lỗi này

Đọc bỏ body quá lớn, mở kết nối mới còn nhanh hơn

Mở lại code gọi API của bạn

Giữ dòng Close. Đang ở Go 1.26 thì update lên 1.27, khỏi viết đoạn đọc bỏ body.

techtipstechtipsvngolangbackendlaptrinh
Đọc tiếp

Bài khác cùng chủ đề

Slide bìa: React Native 0.88: thêm SceneDelegate trước khi build bằng Xcode 2709

React Native 0.88: thêm SceneDelegate trước khi build bằng Xcode 27

feature2′ đọc19.10
Slide bìa: Copilot ngừng Claude Opus 4.8, Opus 5 và GPT-5.6 Terra ngày 16/11: đổi sang model nào07

Copilot ngừng Claude Opus 4.8, Opus 5 và GPT-5.6 Terra ngày 16/11: đổi sang model nào

Tin1′ đọc18.10
Slide bìa: Review bằng AI khiến PostgreSQL 19 gỡ 8–10 tính năng? Người viết code kể lại09

Review bằng AI khiến PostgreSQL 19 gỡ 8–10 tính năng? Người viết code kể lại

Tin2′ đọc17.10
Slide bìa: AVIF nhẹ hơn, JPEG XL giữ ảnh .jpg cũ: chọn định dạng ảnh nào cho web?08

AVIF nhẹ hơn, JPEG XL giữ ảnh .jpg cũ: chọn định dạng ảnh nào cho web?

Giải thích2′ đọc17.10

Mỗi ngày một bài mới.

Mẹo, giải thích và tin công nghệ cho sinh viên và dev mới đi làm. Một người viết, đăng đều.

Bài cũng được đăng lên TikTok, ở dạng slide.

TikTok@techtipsvn