1: Webservices là gì?
- Web services có thể hiểu nôm na là dịch vụ web.
- Web services:
+ là một dịch vụ do thiết bị điện tử này cung cấp cho một thiết bị điện tử khác mà quá trình trao đổi được thực hiện trên môi trường web(World wide web, WWW, Internet, HTTP).
+ Một server mạng sẽ luôn lắng nghe các yêu cầu từ một cổng cụ thể để cung cấp các tài nguyên web như HTML, JSON, XML, Image và tạo ra các dịch vụ cho các ứng dụng có sử dụng web service.
- Trang web và web service:
+ chúng ta thấy kết quả trả về của một web service khá giống với của một trang web tuy nhiên chúng có một số khác biệt như sau:
Trang web | Kết quả trả về của web services | |
Đối tượng sử dụng | Con người | Chương trình |
Kiểu dữ liệu | Thông tin, dữ liệu | Thông tin, dữ liệu |
Kiểu hiển thị | Thông tin con người có thể đọc được | Dữ liệu dạng XML, JSON |
2/ Định nghĩa web service:
- Web service là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML.
- Là tài nguyên phần mềm có thể xác định bằng địa chỉ URL.
- Ứng dụng các chức năng và đưa ra các thông tin người dùng yêu cầu.
- Các ứng dụng được tích hợp với cơ sở dữ liệu và ứng dụng khác, người sử dụng sẽ giao tiếp với cơ sở dữ liệu để tiến hành phân tích và lấy dữ liệu.
- Web service là một tập hợp các giao thức và tiêu chuẩn mở được sử dụng để trao đổi dữ liệu giữa các ứng dụng hoặc giữa các hệ thống.
- Các phần mềm viết bằng các ngôn ngữ khác nhau hoặc chạy trên các nền tảng khác nhau thì chúng có thể sử dụng web service để trao đổi dữ liệu qua lại tương tự như liên lạc giữa các quá trình trong một máy tính.
3/ Ưu Nhược điểm của web service
Ưu điểm:
- Cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau.
- Sử dụng các giao thức và chuẩn mở
- Nâng cao khả năng tái sử dụng
- Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại
- Tạo mối quan hệ tương tác lẫn nhay và mềm dẻo giữ các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán
- Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác.
Nhược điểm:
- Thời điểm web service chết sẽ dẫn đến những thiệt hại lớn như :
+ Giao Diện không thay đổi
+ Có thể lỗi nếu một máy khách không được nâng cấp
+ Thiếu các giao thức cho việc vận hành
- Có quá nhiều chuẩn cho web service khiến người dùng khó nắm bắt.
- Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.
4/ Cơ chế hoạt động
Hoạt động của web services:
– Một ứng dụng web services gồm hai thành phần là client (service consumer) và server (service provider). Chúng giao tiếp với nhau bằng giao thức HTTP.
– Client gửi yêu cầu thông qua HTTP request tới server
– Server gửi kết quả trả về thông qua HTTP response
– Có hai loại công nghệ web services được sử dụng phổ biến là SOAP và REST
– Một ứng dụng web services gồm hai thành phần là client (service consumer) và server (service provider). Chúng giao tiếp với nhau bằng giao thức HTTP.
– Client gửi yêu cầu thông qua HTTP request tới server
– Server gửi kết quả trả về thông qua HTTP response
– Có hai loại công nghệ web services được sử dụng phổ biến là SOAP và REST
5/ Giao thức HTTP
HTTP viết tắt của HyperText Transfer Protocol – giao thức truyền tải siêu văn bản. Trong mô hình OSI và TCP/IP, HTTP là giao thức thuộc tầng ứng dụng (application). HTTP là nền tảng của truyền thông dữ liệu cho WWW. Hiện nay (2021), HTTP đang có ba phiên bản là HTTP/1.1 (ra đời 1999), HTTP/2 (chính thức 2015), và HTTP/3 (đang phát triển).
6/ Kiến trúc Client-server
Kiến trúc client-server là mô hình hoạt động của mọi trang web/ứng dụng web. Ý tưởng của kiến trúc này là máy khách (client) gửi một yêu cầu (request) đến máy chủ (server), máy chủ sẽ xử lý và trả kết quả về cho máy khách.
Kiến trúc client-server gồm một số thành phần:
– Server: có vai trò cung cấp dịch vụ, xử lý và trả về kết quả cho máy client.
– Client: khởi phát yêu cầu, gửi yêu cầu tới server, nhận kết quả server trả về. Client có thể là trình duyệt, ứng dụng viết bằng python/javascript hoặc bất kỳ ứng dụng nào mà có phát sinh ra HTTP request.
– Môi trường truyền thông tin: hạ tầng mạng (LAN, Internet), bao gồm cả phần cứng và phần mềm
– Giao thức truyền thông tin: các chuẩn công nghệ giúp giao tiếp và truyền thông tin giữa server-client
Trong kiến trúc client-server, khi môi trường truyền đã được kết nối, và sẵn sàng thì client luôn là nơi khởi phát của ứng dụng. Client sẽ gửi một HTTP request tới server. Server nhận được request sẽ xử lý và trả kết quả về cho client bằng một HTTP response.
Client là thành phần chủ động. Server là thành phần bị động.
– Client: khởi phát yêu cầu, gửi yêu cầu tới server, nhận kết quả server trả về. Client có thể là trình duyệt, ứng dụng viết bằng python/javascript hoặc bất kỳ ứng dụng nào mà có phát sinh ra HTTP request.
– Môi trường truyền thông tin: hạ tầng mạng (LAN, Internet), bao gồm cả phần cứng và phần mềm
– Giao thức truyền thông tin: các chuẩn công nghệ giúp giao tiếp và truyền thông tin giữa server-client
Trong kiến trúc client-server, khi môi trường truyền đã được kết nối, và sẵn sàng thì client luôn là nơi khởi phát của ứng dụng. Client sẽ gửi một HTTP request tới server. Server nhận được request sẽ xử lý và trả kết quả về cho client bằng một HTTP response.
Client là thành phần chủ động. Server là thành phần bị động.
7/ HTTP Request
như đã biết, trong kiến trúc client-server, client và server giao tiếp với nhau bằng cách gửi thông điệp (gọi là HTTP message). HTTP message gồm hai loại là HTTP request message (thường được gọi tắt là HTTP request) và HTTP response message (thường được gọi tắt là HTTP response).
HTTP request được client tạo ra, ví dụ khi người dùng nhập một URL vào thanh địa chỉ của trình duyệt và bấm phím Enter.
Hình sau là cấu trúc của một HTTP request,
HTTP request được client tạo ra, ví dụ khi người dùng nhập một URL vào thanh địa chỉ của trình duyệt và bấm phím Enter.
Hình sau là cấu trúc của một HTTP request,
+ Request line
+ Request headers
+ Blank line
+ Request body
Trong đó :
- Request line: là hàng đầu tiên trong HTTP request, có cú pháp [request-method-name request-URI HTTP-version], tạm dịch là [loại-request đường-dẫn-của-tài-nguyên phiên-bản-của-HTTP]
- Request headers: Gồm các hàng từ thứ hai đến dòng trắng (dòng dùng để ngăn cách phần request header và phần request body).
+ Request headers là các thông tin bổ sung thêm cho thông điệp gửi tới server, ví dụ: host, accept, accept-language, user-agent, cookies.
+ Cú pháp của request headers:
[request-header-name1: value1, value2,…
request-header-name2: value1, value2,…
…]
+ Request headers là các thông tin bổ sung thêm cho thông điệp gửi tới server, ví dụ: host, accept, accept-language, user-agent, cookies.
+ Cú pháp của request headers:
[request-header-name1: value1, value2,…
request-header-name2: value1, value2,…
…]
- Blank line: Đây là một hàng trắng, dùng để ngăn cách giữa phần header và phần body trong một HTTP request.
- Request body : Chứa dữ liệu được client gửi về server để xử lý.
8/ HTTP Response
Cấu trúc một HTTP response gồm bốn phần:
– Status line
– Response headers
– Blank line
– Response body
– Blank line
– Response body
Trong đó:
- Status line: Dòng đầu tiên của HTTP response, gọi là dòng trạng thái, có cấu trúc như sau:
[HTTP-version status-code reason-phrase], HTTP-version: phiên bản của giao thức HTTP
status-code: mã trả về của server, reason-phrase: giải thích ngắn gọn mã trả về của server
Mã trả về của server gồm một bộ-ba-số, trong đó số đầu tiên cho biết kết quả xử lý của server,
hai số kế tiếp là thông tin bổ sung cho kết quả xử lý.
– 1xx: thông tin, có nghĩa là server đã nhận được yêu cầu, và tiến trình đang tiếp tục
+ 100: cho biết máy chủ đã nhận được phần đầu tiên của yêu cầu và đang chờ đợi cho các phần còn lại
– 2xx: thành công, server đã nhận được yêu cầu, hiểu và xử lý thành công
+ 200 OK: request đã được xử lý thành công
+ 202 Accepted: request đã được nhận, nhưng không có kết quả nào trả về, thông báo cho client tiếp tục chờ đợi
+ 204 No Content: request đã được xử lý nhưng không có thành phần nào được trả về
+ 205 Reset: giống như 204 nhưng mã này còn yêu cầu client reset lại document view
+ 206 Partial Content: server chỉ gửi về một phần dữ liệu, phụ thuộc vào giá trị range header của client đã gửi
– 3xx: cần chuyển hướng, client phải thực hiện thêm thao tác để hoàn tất request
+ 301 Moved Permanently: tài nguyên đã được chuyển hoàn toàn tới địa chỉ Location trong HTTP response
+ 303 See other: tài nguyên đã được chuyển tạm thời tới địa chỉ Location trong HTTP response
+ 304 Not Modified: tài nguyên không thay đổi từ lần cuối client request, nên client có thể sử dụng nội dung đã lưu trong cache
– 4xx: lỗi bên client, cho biết HTTP request bị lỗi cú pháp hoặc không thực hiện được
+ 400 Bad Request: request không đúng dạng, không đúng cú pháp
+ 401 Unauthorized: client chưa xác thực
+ 403 Forbidden: client không có quyền truy cập
+ 404 Not Found: không tìm thấy tài nguyên
+ 405 Method Not Allowed: phương thức không được server hỗ trợ
– 5xx: lỗi bên server, cho biết server không thể xử lý được yêu cầu
+ 500 Internal Server Error: có lỗi trong quá trình xử lý của server
+ 501 Not Implemented: server không hỗ trợ chức năng client yêu cầu
+ 503 Service Unavailable: server bị quá tải, hoặc bị lỗi xử lý
- Response headers:Gồm các hàng từ thứ hai đến dòng trắng (dòng dùng để ngăn cách phần response headers và phần response body).
+ 500 Internal Server Error: có lỗi trong quá trình xử lý của server
+ 501 Not Implemented: server không hỗ trợ chức năng client yêu cầu
+ 503 Service Unavailable: server bị quá tải, hoặc bị lỗi xử lý
+ Response headers là các thông tin bổ sung thêm cho thông điệp (mà không thể để trong status line) do server gửi tới client,
- Blank line: Đây là một hàng trắng, dùng để ngăn cách giữa phần header và phần body trong một HTTP response.
- Response body: Các byte dữ liệu nằm ngay sau phần header của thông điệp (nếu có) được server gửi về client.
.png)





0 Nhận xét