2009-09-26 74 views
18

Tôi đọc về "HTTP persistent connection" nhưng bằng cách nào đó tôi dường như không hiểu những gì liên tục có ý nghĩa trong ngữ cảnh này.
Bạn có thể xây dựng không?Chính xác "kết nối liên tục" có nghĩa là gì?

+2

Điều Chaos nghĩa là kết nối giữa máy khách và máy chủ không bị đóng sau khi trao đổi thông tin - để nó mở để liên lạc thêm. Điều này nhanh hơn nhiều so với việc thiết lập kết nối mới mỗi lần bạn cần truyền thông tin. – NTDLS

Trả lời

18

Tất cả các cuộc thảo luận cho đến bây giờ đều đến từ phía trình duyệt của sự vật. Trình duyệt đầu tiên yêu cầu trang thực tế và nó phân tích trang và tìm ra tất cả các tài nguyên khác mà nó cần trước khi nó có thể hiển thị trang đó. Trình duyệt yêu cầu các tài nguyên này và các tài nguyên phụ thuộc khác từng cái một. Vì vậy, việc duy trì kết nối liên tục là rất hiệu quả ở đây, vì tránh được việc tạo và hủy kết nối.

Giờ đây, từ phía máy chủ web của mọi thứ, kết nối liên tục sẽ là kết nối cho phép nội dung "đẩy" nội dung vào trình duyệt web. Hiện tại, HTTP không hỗ trợ điều này. Vì vậy, có rất ít cách giải quyết với javascript, nơi trang cơ bản được làm mới sau một thời gian.

Bạn có thể thấy mẹo này đang được nhiều nhà cung cấp email dựa trên web sử dụng liên tục kiểm tra trong nền cho thư mới. Điều này mang lại cảm giác rằng khi một thư mới đến, máy chủ "đẩy" thông báo thư mới đến trình duyệt web. Nhưng trên thực tế, nó thực sự là trình duyệt web mà giữ trên kiểm tra máy chủ cho bất kỳ thư mới.

Một điểm khác mà tôi muốn nói là chúng tôi thực sự không thấy bất kỳ trang làm mới nào là do một mẹo khác chỉ cho phép các phần cụ thể của trang được làm mới theo yêu cầu. (GỢI Ý: AJAX)

+0

Câu trả lời rất thông tin! –

+1

Nếu tôi giữ một conncection mở với một máy chủ web sẽ trình duyệt hiển thị liên tục một thanh tải? –

+1

Trình duyệt web sẽ chỉ hiển thị thanh tải, nếu nó thực sự yêu cầu thứ gì đó. Công cụ nền cho dù kết nối có mở hay không không được phản ánh trong giao diện người dùng của trình duyệt. – Trainee4Life

28

Điều này có nghĩa là máy chủ không đóng socket sau khi hoàn thành đẩy phản hồi (do đó, độ dài của phản hồi phải được chỉ định khác, thông qua tiêu đề hoặc chunking), vì vậy khách hàng có thể thực hiện các yêu cầu khác trên cùng ổ cắm. Trang web thường yêu cầu một số phần khác (hình ảnh, CSS, tập lệnh, ...) trên cùng một máy chủ với chính trang đó, vì vậy việc sử dụng lại ổ cắm cho một số yêu cầu tiếp theo cho cùng một máy chủ có thể giảm độ trễ tổng thể so với đóng ổ cắm ban đầu và mở ổ cắm mới cho tất cả các yêu cầu tiếp theo.

+1

Như darkassassin93 đã tuyên bố rằng kết nối sẽ chết trong trường hợp out.close() trên Servlet. Trong trường hợp này làm thế nào chúng ta có thể thực hiện kết nối liên tục HTTP trên một máy chủ Java Tomcat? Hay chúng ta sẽ phải sử dụng các công cụ của bên thứ 3 để thực hiện điều này? Một câu hỏi khác là về phía khách hàng? –

+2

@Kevin, bạn không có quyền kiểm soát trình duyệt ("phía máy khách"): nó sẽ thiết lập chính sách riêng của mình (bạn chỉ có thể hy vọng nó hỗ trợ "sống động"; hầu hết đều làm). Re gọi '.đóng', tôi tin rằng đóng kết nối (đó là mục đích cụ thể của nó) để cách (hy vọng, trình duyệt hợp tác) KHÔNG đóng kết nối là KHÔNG gọi' close' - có thể không đủ nhưng là chắc chắn cần thiết. –

1

Tôi nghĩ đây là chuyển đổi cho http hoặc https cho trình duyệt trang web. Nếu bạn có https: // cũ và bây giờ bạn đang sử dụng http cho tệp .htaccess của trình duyệt thì vấn đề này sẽ được tạo thông qua trang trình thu thập dữ liệu trang một trang của yoast. đừng lo lắng về nó không phải là lỗi quan trọng. Đối với tin tặc, đây là cách để hack trang web của bạn nếu kết nối ssl trống, họ nên đính kèm trang hoặc miền đó vào kết nối ssl e.b http://www.example.com và khi bạn duyệt https://www.example.com trong trình duyệt, có một số liên kết khác mở miền trang web của bạn.

Giải pháp cho điều này luôn sử dụng địa chỉ đầy đủ của bạn cho trang web: để bảo vệ tin tặc chống lại trang web của bạn sử dụng ssl và https:/trang cho trang web của bạn.

Sau đó, sự cố này chưa bao giờ xuất hiện trên bất kỳ trang hoặc trang thử nghiệm nào.

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