2009-08-11 41 views
9

Giờ đây, kiến ​​thức phổ biến là kết hợp các bảng định kiểu và tập lệnh nhằm giảm bớt các yêu cầu HTTP. Tôi có 2 câu hỏi:Tối ưu hóa yêu cầu HTTP: Giới hạn là gì?

  1. Chúng đắt bao nhiêu?
  2. Khi nào một yêu cầu quá lớn nên được chia nhỏ?

Tôi không thể tìm thấy câu trả lời cho hai câu hỏi này trong tất cả các bài đọc trực tuyến mà tôi đã thực hiện, chẳng hạn như Yahoo! Best Practices nêu rõ số lần yêu cầu HTTP đắt tiền, nhưng không bao giờ trích dẫn tại sao hoặc như thế nào.

Xin cảm ơn trước.

Trả lời

6

Một yêu cầu HTTP đòi hỏi một kết nối TCP/IP phải được thực hiện (suy nghĩ, 3-way bắt tay bắt tay) trước khi nó có thể xử lý các yêu cầu HTTP nó tự

này liên quan đến ít nhất một sự chậm trễ của việc gửi thông điệp SYN đến máy chủ và lấy lại SYN/ACK (Sau đó nó sẽ gửi ACK để mở socket).

Vì vậy, giả sử độ trễ giữa máy khách và máy chủ là thống nhất cả hai cách và 50ms, điều này dẫn đến độ trễ 100ms trước khi có thể gửi yêu cầu HTTP. Đó là sau đó một 100ms trước khi nó bắt đầu nhận được yêu cầu thực tế trở lại (Gửi yêu cầu, sau đó trả lời máy chủ).

Tất nhiên, bạn cũng cần cân nhắc rằng trình duyệt web chuẩn giới hạn số lượng yêu cầu HTTP đồng thời mà nó đang xử lý cùng một lúc. Nếu yêu cầu của bạn phải đợi, bạn không có thời gian bắt tay miễn phí (vì vậy bạn cần phải đợi), vì bạn cũng cần đợi kết nối khác hoàn tất. Các máy chủ cũng đóng một vai trò, tùy thuộc vào cách chúng xử lý các yêu cầu.

+2

Thêm vào câu trả lời này, các trình duyệt thường chỉ mở một số lượng giới hạn các kết nối TCP cùng một lúc (~ 2..4) - vì vậy nếu bạn có nhiều yêu cầu hơn số đó, chúng sẽ được xếp hàng đợi. –

+0

Hãy suy nghĩ thêm rằng ngay sau khi tôi nhấn bài đăng. Chi tiết khá quan trọng thực sự. –

1

Tôi không có câu trả lời về yêu cầu HTTP đắt tiền, nhưng việc giảm khứ hồi giữa máy khách và máy chủ luôn là một ý tưởng hay. Nếu bạn có một lượng dữ liệu cố định để truyền tải, nó sẽ luôn luôn tốt hơn để làm điều đó trong ít yêu cầu hơn.

2
  1. Bất cứ khi nào yêu cầu được thực hiện, nó phải chịu sự khắc nghiệt của độ tin cậy mạng. Hai yêu cầu được thực hiện liên tiếp nhanh chóng từ cùng một vị trí có thể thực hiện các tuyến đường hoàn toàn khác nhau, vì vậy với mỗi yêu cầu, bạn sẽ thêm một yếu tố không lường trước được về hiệu suất. Một yêu cầu hợp nhất có thể giúp giảm thiểu rủi ro đó. @Dan McG đã viết một điểm âm thanh về chi phí bắt tay TCP.
  2. HTTP không quan tâm đến yêu cầu kích thước vì nó hoạt động như giao thức lớp ứng dụng trên ngăn xếp IP (Internet Protocol Suite). Đó là để TCP/IP lo lắng về, điều gì sẽ gây lo ngại cho nhà xuất bản là giữ kích thước tài liệu/tệp càng nhỏ càng tốt và đủ nhỏ để ứng dụng của họ đủ khả năng hoạt động.

Hy vọng điều đó có ý nghĩa.

Các vấn đề liên quan