Sự khác biệt giữa lập trình socket và lập trình Http là gì? ai có thể giúp tôi không?sự khác biệt giữa lập trình socket và lập trình Http
Trả lời
HTTP là một giao thức ứng dụng. Về cơ bản nó có nghĩa là bản thân HTTP không thể được sử dụng để truyền thông tin đến/từ một điểm kết thúc từ xa. Thay vào đó nó dựa trên một giao thức cơ bản trong trường hợp của HTTP là TCP.
Bạn có thể đọc thêm về OSI layers nếu bạn quan tâm.
Ổ cắm mặt khác là một API mà hầu hết các hệ điều hành đều cung cấp để có thể nói chuyện với mạng. API socket hỗ trợ các giao thức khác nhau từ tầng vận chuyển và xuống.
Điều đó có nghĩa là nếu bạn muốn sử dụng TCP, bạn sử dụng ổ cắm. Nhưng bạn cũng có thể sử dụng ổ cắm để giao tiếp bằng cách sử dụng HTTP, nhưng sau đó bạn phải giải mã/mã hóa tin nhắn theo đặc tả HTTP (RFC2616). Vì đó có thể là một nhiệm vụ rất lớn đối với hầu hết các nhà phát triển, chúng tôi cũng có các khách hàng đã sẵn sàng trong các khung phát triển của chúng tôi (như .NET), ví dụ: các lớp WebClient
hoặc HttpWebRequest
.
Với HTTP, bạn sử dụng giao thức HTTP cấp cao (hoạt động trên đầu một ổ cắm). Đó là phiên ít có nghĩa là bạn gửi yêu cầu văn bản như GET google.com
và nhận văn bản hoặc dữ liệu nhị phân trong trở lại, sau khi kết nối được đóng lại (trong HTTP 1.1 kết nối liên tục có sẵn)
MSDN dụ:
public static void Main (string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create (args[0]);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Console.WriteLine ("Content length is {0}", response.ContentLength);
Console.WriteLine ("Content type is {0}", response.ContentType);
// Get the stream associated with the response.
Stream receiveStream = response.GetResponseStream();
// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8);
Console.WriteLine ("Response stream received.");
Console.WriteLine (readStream.ReadToEnd());
response.Close();
readStream.Close();
}
Với ổ cắm bạn đi trên mức thấp hơn và thực sự kiểm soát kết nối và gửi/nhận byte thô.
Ví dụ:
var remoteEndpoint=new IPEndPoint(IPAddress.Loopback, 2345);
var socket = new Socket(remoteEndpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(remoteEndpoint);
socket.Send(new byte[] {1, 2, 3, 4});
lập trình HTTP hoặc yêu cầu HTTP được sử dụng cho các khớp nối lỏng lẻo và công nghệ ngôn ngữ nền tảng trung lập giao tiếp nơi như lập trình socket được sử dụng khi hệ thống có ngôn ngữ giao thức đặc điểm kỹ thuật
Bạn muốn nói gì bằng ngôn ngữ? Một ứng dụng java có thể giao tiếp với một ứng dụng Python thông qua các ổ cắm ví dụ –
HTTP kết nối
- Kết nối HTTP là giao thức chạy trên ổ cắm.
- Kết nối HTTP là mức trừu tượng cao hơn của kết nối mạng.
- Với kết nối HTTP, việc triển khai sẽ thực hiện tất cả các chi tiết cấp cao hơn và chỉ cần gửi yêu cầu HTTP (một số thông tin tiêu đề ) và nhận phản hồi HTTP từ máy chủ.
Ổ cắm kết nối
- socket được sử dụng để vận chuyển dữ liệu giữa các hệ thống. Nó chỉ đơn giản là kết nối hai hệ thống với nhau, một địa chỉ IP là địa chỉ của máy qua mạng IP.
- Với kết nối ổ cắm, bạn có thể thiết kế giao thức riêng cho kết nối mạng giữa hai hệ thống.
- Với kết nối Ổ cắm, bạn cần phải chăm sóc tất cả các chi tiết cấp thấp hơn của kết nối TCP/IP.
- 1. Sự khác biệt giữa lập trình Seaside và lập trình web khác
- 2. Sự khác biệt giữa lập trình biểu hiện gen và lập trình di truyền học Descartes
- 3. Sự khác biệt giữa lập lịch trình FreeBSD và Trình lập lịch biểu Linux
- 4. Lập trình socket PHP
- 5. Sự khác biệt giữa Trình mô phỏng iPhone và Trình giả lập Android
- 6. Sự khác biệt giữa lập trình đa lõi trong Erlang và ngôn ngữ khác là gì?
- 7. gửi và nhận file lập trình socket
- 8. sự khác biệt giữa http và www
- 9. C# Asyn. Lập trình Socket
- 10. Hiểu sai sự khác biệt giữa lập trình đơn luồng và đa luồng
- 11. Sự khác biệt giữa luồng và datagram trong lập trình mạng là gì?
- 12. Sự khác biệt giữa ngôn ngữ lập trình hàm và mệnh lệnh là gì?
- 13. Sự khác biệt giữa Lập trình Thủ tục và Thủ tục?
- 14. Sự khác biệt giữa lập trình khai báo và bắt buộc là gì?
- 15. Lập trình Máy chủ HTTP
- 16. Lập trình Socket trên một máy tính?
- 17. Sự khác biệt giữa vùng chứa và trình bao bọc
- 18. Lập trình socket ví dụ trong iphone
- 19. Sự khác biệt giữa TCP Listener và Socket
- 20. Lập trình Java và lập trình sự kiện
- 21. Sự khác biệt giữa http: // *: 80 và http: // +: 80
- 22. APM, EAP và TPL trên Lập trình Socket
- 23. Sự khác nhau giữa devm_kzalloc() và kzalloc() trong lập trình trình điều khiển linux
- 24. Windows Phone 7: Lập trình Socket
- 25. R và hướng đối tượng lập trình lập trình hướng
- 26. Suy nghĩ khác biệt giữa trạm làm việc và lập trình viên nhúng
- 27. Sự khác biệt trong khoảngEqual và basicEqual trong Nghệ thuật lập trình máy tính
- 28. Sự khác biệt giữa Chủ đề và Trình xử lý
- 29. Sự khác biệt giữa tập lệnh và chương trình?
- 30. Sự khác biệt giữa trình lặp và điều tra
Vì vậy, cả hai đều sử dụng TCP, nó chỉ là HTTP phản hồi trong một định dạng được xác định trước và ổ cắm cho dữ liệu như được trả về từ đầu kia của một socket, phải không? –
yep. TCP đảm bảo rằng mọi thứ đến (lớp truyền tải) và HTTP cho biết các ứng dụng web nên làm gì. – jgauffin