Lập trình mạng Python: client – server (phần 10)

Một trao đổi trò chuyện mạng thô (tiếp tục)

Bạn sẽ học nhiều hơn về sockets trong học phần tới. Cho bây giờ, bạn có thể nhận thấy trong search4.py
cái trao đổi thông tin mạng thô là một vấn đề của gửi và nhận các byte strings. Request cái bạn gửi là
một byte string, và trả lời – cái, trong trường hợp này, bạn đơn giản in ra màn hình để rằng bạn có thể
trải nghiệm nó tất cả trong vòng mức thấp – là byte string lớn khác. HTTP request, text của nó bạn có
thể thấy bên trong hàm sendall(), chứa từ GET – tên của hoạt động bạn muốn thực hiện – được theo sau bởi
đường dẫn của tài liệu bạn muốn lấy và phiên bản HTTP bạn hỗ trợ.

GET /maps/api/geocode/json?address=207+N.+Defiance+St%2C+Archbold%2C+OH&sensor=false HTTP/1.1

Sau đó có một chuỗi các headers mỗi cái chứa name, dấu ;, và một value và cuối cùng một a carriage-return/
cặp dòng mới cái kết thúc request.
Trả lời, cái sẽ in ra như đầu ra của script nếu bạn chạy search4.py, được thể hiện trong phần code dưới đây
chọn đơn giản in ra trả lời vào màn hình trong ví dụ này, hơn là viết code thao tác xử lí text phức tạp cái
sẽ có thể biên dịch trả lời. Tôi đã làm như vậy vì tôi nghĩ rằng đơn giản đọc HTTP reply trên màn hình của
bạn sẽ đem lại cho bạn một ý tưởng tốt hơn nhiều về nó trông là gì hơn khi bạn phải giải mã code thiết kế để
biên dịch nó.

The Output of Running search4.py
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Date: Sat, 23 Nov 2013 18:34:30 GMT
Expires: Sun, 24 Nov 2013 18:34:30 GMT
Cache-Control: public, max-age=86400
Vary: Accept-Language
Access-Control-Allow-Origin: *
Server: mafe
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic
Connection: close
{
“results” : [
{

“formatted_address” : “207 North Defiance Street, Archbold, OH 43502, USA”,
“geometry” : {
“location” : {
“lat” : 41.521954,
“lng” : -84.306691
},

},
“types” : [ “street_address” ]
}
],
“status” : “OK”
}

Bạn có thể thấy rằng trả lời HTTP là hoàn toàn tương tự trong cấu trúc đối với HTTP request. Nó bất đầu với dòng
status, cái được theo sau bởi một số headers. Sau một dòng trắng, nội dung trả lời bản thân nó được thể hiện như
một cấu trúc dữ liệu Javascript, trong một format đơn giản được biết đến là JSON, cái trả lời truy vấn của bạn bằng
cách mô tả geographic location cái tìm kiếm Google Geocoding API trả về.
Tất cả các dòng status và headers, tất nhiên chính xác là loại chi tiết mức thấp cái Python httplib đã quan tâm
trong các phần code trước. Ở đây, bạn thấy trao đổi thông tin trông là gì nếu tầng của phần mềm đó bị lột đi.

Chia sẻ

Leave a Reply

Your email address will not be published. Required fields are marked *