1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo THỰC tập tốt NGHIỆP đề tài NGHIÊN cứu, tìm HIỂU các GIAO THỨC sử DỤNG TRÊN WEBSEVER

41 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 1,28 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các giao thức mạng protocol là tập hợp các quy tắc được thiết lậpnhằm xác định cách để định dạng, truyền và nhận dữ liệu sao cho các thiết bịmạng máy tính - từ server và router tới endpo

Trang 2

Để hoàn thành chuyên đề báo cáo thực tập này trước hết em xin gửi đếnquý thầy cô giáo trong khoa Điện – Điện Tử, Bộ Môn Điều Khiển Học trườngĐại Học Giao Thông Vận Tài Phân Hiệu Tại TP.HCM lời cảm ơn chân thành.

Đặc biệt, em xin gửi đến thầy Nguyễn Văn Bình người đã tận tình hướngdẫn, giúp đỡ em hoàn thành chuyên đề báo cáo thực tập này lời cảm ơn sâu sắcnhất

Trong quá trình thực tập, cũng như là trong quá trình làm bài báo cáo thựctập, khó tránh khỏi sai sót, rất mong các thầy, cô bỏ qua Đồng thời do trình độ

lý luận cũng như kinh nghiệm thực tiễn còn hạn chế nên bài báo cáo không thểtránh khỏi những thiếu sót, em rất mong nhận được ý kiến đóng góp thầy, cô để

em học thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt hơn bài báo cáo tốtnghiệp sắp tới

Em xin chân thành cảm ơn!

Hồ Chí Minh, ngày 20 tháng 10 năm 2021

Trang 3

 Họ tên sinh viên thực tập: ………

 Ngày tháng năm sinh: ………

 Giảng viên hướng dẫn thực tập: ……… Sau thời gian hướng dẫn sinh viên ……… thực tập, tôi

………… , Ngày…… tháng…… năm……

Giảng viên hướng dẫn

TS Nguyễn Văn Bình

Trang 4

LỜI MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ WEBSEVER 2

1.1 Định nghĩa Websever 2

1.2 Nguyên lý hoạt động của Websever 3

1.3 Các Websever thông dụng 4

1.3.1 Nginx 4

1.3.2 Internet Information Services (IIS) 5

1.3.3 Apache HTTP server 5

1.3.4 Apache Tomcat 6

1.3.5 Lighttpd 6

CHƯƠNG 2: CÁC GIAO THỨC TRUYỀN TẢI DỮ LIỆU WEBSEVER 7

2.1 Tổng quan về TCP/IP 7

2.2 HyperText Transfer Protocol (HTTP) 9

2.2.1 Định nghĩa 9

2.2.2 Lịch sử hình thành 9

2.2.3 Mô hình giao thức 9

2.2.4 Format gói tin 10

2.2.5 Ưu nhược điểm HTTP 12

2.3 Hypertext Transfer Protocol Secure (HTTPS) 13

2.3.1 Định nghĩa HTTPS 13

2.3.2 So sánh HTTP và HTTPS: 14

2.3.3 Ưu điểm của HTTPS 15

2.4 Message Queuing Telemetry Transport 17

2.4.1 MQTT là gì? 17

2.4.2 Lịch sử phát triển 18

2.4.3 Nguyên lý hoạt động của MQTT 20

2.4.3.1 Mô hình Pub/Sub 20

2.4.3.2 Cơ chế hoạt động mô hình Pub/Sub 21

2.4.4 Ưu nhược điểm MQTT 23

CHƯƠNG 3 THỰC NGHIỆM, ĐÁNH GIÁ VÀ KẾT LUẬN 24

3.1 Tổng quan thành phần 24

3.1.1 ESP8266 NodeMCU 24

3.1.2 HyperText Markup Language (HTML) 26

3.2 Điều Khiển Led Qua Webserver 27

3.2.1 Chạy thực nghiệm 27

TÀI LIỆU THAM KHẢO 29

Trang 5

PHỤ LỤC 1: CODE TRÊN NODE MCU ESP8266 31

Trang 6

Hình 1 Nguyên lý hoạt động của Websever 3

Hình 2 Cấu trúc TCP/IP 7

Hình 3 Giao thức HTTP 10

Hình 4 Giao thức HTTPS 14

Hình 5 Ứng dụng MQTT vào IoT 20

Hình 6 Mô hình Pub/Sub 21

Hình 7 Kiến trúc thành phần MQTT 23

Hình 8 MQTT Browser Client 25

Hình 9 ESP8266 ở chế độ Access Point 26

Hình 10 Cấu trúc HTML 27

Hình 11 ESP kết nối Wifi in ra địa chỉ IP 28

Hình 12 Điều khiển Led qua Webserver 28

Trang 7

MQTT : Message Queuing Telemetry Transport

HTTP : HyperText Transfer Protocol

HTTPS : HyperText Transfer Protocol Secure

Trang 8

LỜI MỞ ĐẦU

Bất cứ mô hình, hệ thống nào, dù quy mô nhỏ hay lớn đều cần phải cócác hệ quy tắc để có thể hoạt động nhịp nhàng, suôn sẻ Hệ thống mạng cũngvậy, nhờ có các giao thức quy chuẩn mà mạng internet chúng ta đang sử dụnghàng ngày mới có thể vận hành chính xác và giúp cuộc sống con người dễdàng hơn mỗi ngày

Các giao thức mạng (protocol) là tập hợp các quy tắc được thiết lậpnhằm xác định cách để định dạng, truyền và nhận dữ liệu sao cho các thiết bịmạng máy tính - từ server và router tới endpoint - có thể giao tiếp với nhau,bất kể sự khác biệt về cơ sở hạ tầng, thiết kế hay các tiêu chuẩn cơ bản giữachúng

Để gửi và nhận thông tin thành công, các thiết bị ở cả hai phía của mộttrao đổi liên lạc phải chấp nhận và tuân theo các quy ước giao thức Hỗ trợcho các giao thức mạng có thể được tích hợp vào phần mềm, phần cứng hoặc

cả hai

Đơn giản mà nói thì giao thức mạng như một bộ quy tắc và chúng phảituân theo những quy tắc bắt buộc đó Nó giống như những tiêu chuẩn vàchính sách chính thức và gộp lại, tạo nên những quy tắc đó các giao thứcmạng này nhằm thực hiện những hành động, chính sách và giải quyết vấn đề

từ đầu đến cuối giúp quá trình giao tiếp mạng hoặc dữ liệu diễn ra kịp thời

Trong thiết lập kết nối Internet có nhiều giao thức mạng khác nhau Vàmỗi giao thức ta có thể có cách thiết lập và sử dụng khác nhau Thông thườngnhững giao thức này xác định bằng đặc điểm của kết nối và cũng rất đa dạng.Nhận thức được tầm quan trọng của giao thức mạng trong các hệ thống đặcbiệt là IoT, em đã tìm hiểu và đã hoàn thành bài báo cáo về các giao thứcmạng đang được sử dụng phổ biến hiện nay

Trang 9

NỘI DUNG ĐỀ TÀICHƯƠNG 1: TỔNG QUAN VỀ WEBSEVER

1.1 Định nghĩa Websever

Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng đểlưu trữ thông tin như một ngân hàng dữ liệu, chứa những website đã đượcthiết kế cùng với những thông tin liên quan khác (các mã Script, các chươngtrình, và các file Multimedia)

Web Server có khả năng gửi đến máy khách những trang Web thôngqua môi trường Internet (hoặc Intranet) qua giao thức HTTP, giao thức đượcthiết kế để gửi các file đến trình duyệt Web (Web Browser), và các giao thứckhác

Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng cóthể có một Domain Name Giả sử khi người sử dụng đánh vào thanh Addresstrên trình duyệt của máy một dòng http://www.abc.com sau đó gõ phím Enter,khi đó người sử dụng đã gửi một yêu cầu đến một Server có Domain Name làwww.abc.com Server này sẽ tìm trang Web có tên là index.htm rồi gửi nóđến trình duyệt của người sử dụng

Bất kỳ một máy tính nào cũng có thể trở thành một Web Server bằngviệc cài đặt lên nó một chương trình phần mềm Server Software và sau đó kếtnối vào Internet

Khi máy tính kết nối đến một Web Server và gửi đến yêu cầu truy cậpcác thông tin từ một trang Web nào đó, Web Server Software sẽ nhận yêu cầu

và gửi lại những thông tin mà người sử dụng mong muốn

Web Server Software cũng chỉ là một ứng dụng phần mềm Web ServerSoftware được cài đặt, và chạy trên máy tính dùng làm Web Server, nhờ cóchương trình này mà người sử dụng có thể truy cập đến các thông tin củatrang Web từ một máy tính khác ở trên mạng (Internet, Intranet)

Web Server Software còn có thể được tích hợp với CSDL (Database),hay điều khiển việc kết nối vào CSDL để có thể truy cập và kết xuất thông tin

từ CSDL lên các trang Web và truyền tải chúng đến người dùng

Tất cả các Web Server đều hiểu và chạy được các file *.htm và *.html,tuy nhiên mỗi Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn

Trang 10

như IIS của Microsoft dành cho *.asp, *.aspx ; Apache dành cho

*.php ; Sun Java System Web Server dành cho *.jsp

Phần lớn các Web server sử dụng cổng 80, nhưng cũng có thể thay đổi

để Webserver có thể cài đặt trên cổng không tiêu chuẩn nếu muốn "dấu" Webserver như là một Web server đa host trên một máy tính bằng việc ánh xạ mỗiserver cho một cổng khác nhau

1.2 Nguyên lý hoạt động của Websever

Khi ta gõ địa chỉ trang web “http://example.com/index.html” vào trìnhduyệt web và nhấn Enter, trang web hiển thị ngay trên màn hình Các bước cơbản trong tiến trình truyền tải trang web đến màn hình người dùng bằng cơchế hoạt động của Web server được thể hiện theo mô hình sau:

Hình 1 Nguyên lý hoạt động của Websever

Theo mô hình trên, trình duyệt web thực hiện một kết nối tới Websever,yêu cầu một trang web và nhận lại nó Sau đây, là thứ tự từng bước cơ bảnxảy đến đằng sau màn hình của chúng ta:

Bước 1: Người dùng gửi yêu cầu

Người dùng Internet sẽ truy cập một website bất kỳ thông qua một trìnhduyêt web được cài trên máy tính hoặc thiết bị di động Giả sử ta gõ địa chỉwebsite với URL “http://example.com/index.html”

Bước 2: Trình duyệt web gửi yêu cầu tới Web server để xử lý

Trình duyệt web tách địa chỉ website làm 3 phần:

 Phần giao thức (“http”): Trình duyệt web xác định giao thức làhttp, nội dung phục vụ là web và được phản hồi từ web server Giao thức http chophép giao tiếp giữa web client và server

 Tên miền máy chủ (“example.com”): là server name phục vụ nội dung web cho client

Trang 11

 Tên tệp (“/index.htm”): đây là đường dẫn ảo tệp tin trên máy chủexample.com (index.html là tệp tin mặc định web server phục vụ web client Tùythuộc vào cấu hình mỗi web server mà tệp tin mặc định sẽ khác nhau, có thể làindex.php, index.jsp, …)

Lúc này, trình duyệt web mà ta đang sử dụng (Chrome, Cốc Cốc,Firefox …) sẽ nhận yêu cầu và chuyển đổi từ địa chỉ tên miền sang địa chỉ IPkèm theo tên miền đó Việc truy xuất thông tin IP này sẽ thông qua các máychủ DNS Sau đó trình duyệt sẽ thông qua giao thức HTTP gửi yêu cầu đếnWeb server báo là có một người dùng đang cần truy xuất thông tin tại địa chỉnày Và nó yêu cầu máy chủ hãy trả về kết quả cho người dùng

Bước 3: Máy chủ web kiểm tra, trả về kết quả và trình duyệt hiển thịkết quả cho người dùng

Khi nhận được yêu cầu từ trình duyệt, máy chủ web sẽ kiểm tra lạitrong hệ thống xem có tài nguyên nào liên quan đến địa chỉ mà người dùngđang cần tìm hay không Trường hợp có nó sẽ trả lại thông tin qua giao thứcHTTP đến trình duyệt web để hiển thị cho người dùng Còn nếu không thì nó

sẽ xuất hiện các thông báo lỗi hoặc nội dung không tìm thấy Cứ như vậy quytrình này được lặp đi lặp lại

1.3 Các Websever thông dụng

1.3.1 Nginx

Loại web server được dùng khá là phổ biến hiện nay đó là Nginx, đây

là 1 máy chủ reverse proxy mã nguồn mở cho các giao thức HTTP, HTTPS,SMTP, POP3 và IMAP, cũng như là 1 máy chủ cân bằng tải (load balancer),HTTP cache và web

Dự án Nginx được bắt đầu với việc tập trung vào tính đồng thời cao,hiệu năng cao và sử dụng tài nguyên thấp và được phát triển bởi Igor Sysoevvào nằm 2002, được phân phối ra công chúng lần đầu vào nằm 2004

Trang 12

1.3.2 Internet Information Services (IIS)

IIS do Microsoft phát triển, sản phẩm này được tích hợp cùng với hệđiều hành Windows Server Trong IIS bao gồm nhiều dịch vụ như: dịch vụWeb Server, dịch vụ FTP Server

Tất cả các tính năng của web server được quản lí độc lập do đó chúng

ta có thể dễ dàng thêm, loại bỏ hoặc thay thế các tính năng của web server.IIS đảm bảo an toàn cho máy chủ bằng cách giảm diện tích bề mặt tấn công.Giảm diện tích bề mặt tấn công là một trong những cách mạnh mẽ nhất đểđảm bảo hệ thống máy chủ Với IIS, chúng ta có thể loại bỏ những tính năngmáy chủ không cần thiết để máy chủ đạt diện tích bề mặt nhỏ nhất mà vẫn giữnhững tính năng cần thiết Bằng cách loại bỏ một số tính năng máy chủ không

sử dụng, chúng ta có thể làm giảm số lượng bộ nhớ mà máy chủ sử dụng, cảithiện hiệu suất bằng cách làm giảm số lượng đoạn code cần thực hiện Bằngcách lựa chọn tập hợp các tính năng máy chủ chúng ta có thể xây dựng mộtmáy chủ để tối ưu hóa một chức năng trong liên kết ứng dụng, chẵn hạn như

bộ nhớ đệm hoặc cân bằng tải

Chúng ta có thể thêm các tính năng hoặc thay thế bất kì tính năng hiện

có nào bằng cách sử dụng các thành phần máy chủ của bên thứ ba hoặc cácthành phần chúng ta tự xây dựng trên phần mở rộng API Cấu trúc từng phầncung cấp lợi ích lâu dài cho cộng động IIS: nó tạo điều kiện phát triển nhữngtính năng mới khi cần thiết cho các nhà phát triển của Microsoft và cả của bênthứ ba

Nhờ được tích hợp ASP.NET IIS có thể sử dụng toàn bộ sức mạnh củaASP.NET Module ASP.NET làm cho máy chủ phát triển nhanh chóng nhờvào giao diện quen thuộc và các dịch vụ ứng dụng của ASP.NET

IIS hỗtrơ ̣chứng thực người dùng, virtual hosting, CGI, FCGI, ISAPI,php, hỗ trợ Ipv6,

1.3.3 Apache HTTP server

Apache HTTP server hay còn được gọi là Apache là phần mềm webserver được sử dụng rộng rãi nhất thế giới Apache được phát triển và duy trìbởi một cộng đồng mã nguồn mở dưới sự bảo trợ của Apache SoftwareFoundation Apache được phát hành với giấy phép Apache License, là mộtphần mềm tự do, miễn phí

Apache có các tính năng như chứng thực người dùng, virtual hosting,

hỗ trợ CGI, FCGI, SCGI, WCGI, SSI, ISAPI, HTTPS, Ipv6,…

Trang 13

1.3.4 Apache Tomcat

Apache Tomcat là một Java Servlet được phát triển bởi ApacheSoftware Foundation Tomcat thi hành các ứng dụng Java Servlet vàJavaServer Pages (JSP) Tomcat cung cấp một máy chủ HTTP cho ngôn ngữJava thuần túy Apache Tomcat là một phần mềm mã nguồn mở để chạy cácứng dụng web có nền tảng là ngôn ngữ Java Tomcat được hỗ trợ và tăngcường bởi một nhóm tình nguyện viên từ cộng đồng mã nguồn mở của Java

Apache Tomcat rất ổn định và có tất cả các tính năng của một ứng dụngweb thương mại nhưng đi kèm theo giấy phép mã nguồn mở của Apache.Tomcat cũng cung cấp một số chức năng bổ sung như tomcat managerapplication, speciallized realm imlementation và tomcat valves Các phiên bảncủa apache tomcat trùng với phiên bản và đặc điểm kỹ thuật của servlet javahoặc java servlet API Tomcat 5.5X hỗ trợ Servlet API 2.3, tomcat 6.0X hỗtrợ servlet API 2.4 và tomcat 7.0 hỗ trợ servlet API 3.0 Ngoài Servletversions API, phiên bản tomcat hỗ trợ phiên bản JSP API tương ứng

Apache Tomcat có các tính năng như chứng thực người dùng, virtualhosting, CGI, Java Servlet, SSI, hỗ trợ Ipv6, …

Apache Tomcat hỗ trợ các hệ điều hành như windows, linux, OS, BSD,solaris,

1.3.5 Lighttpd

Lighttpd là một phần mềm mã nguồn mở, an toàn và linh hoạt, đăc ̣ biêṭmiễn phí và được phân phối theo giấy phép BSD Lighttpd được viết bởi JanKneschke Lighttpd chiếm ít tài nguyên, memory thấp, CPU nhỏ Lighttpdđược phát triển bằng ngôn ngữ C chạy trên hệ điều hành Linux, Windows,Mac OS,

Lighttpd hỗ trợ FastCGI, SCGI, CGI cho phép nó chạy được các ứngdụng web được viết bằng bất cứ ngôn ngữ nào Lighttpd còn có các tính năngnhư chứng thực, hỗ trợ HTTPS, virtual hosting, hỗ trợ Ipv6, Lighttpd không

hỗ trợ ISAPI (Internet Service Application Programming Interface)

Trang 14

CHƯƠNG 2: CÁC GIAO THỨC TRUYỀN TẢI DỮ LIỆU WEBSEVER

2.1 Tổng quan về TCP/IP

Bộ giao thức TCP/IP (Internet Protocol Suite) là bộ giao thức màInternet và các mạng máy tính đang sử dụng và chạy trên đó Nó gồm 2 giaothức chính là TCP (Transmission Control Protocol - Giao thức điều khiển giaovận) và IP (Internet Protocol - Giao thức liên mạng)

Bộ giao thức TCP/IP được coi là một tập hợp các tầng Mỗi tầng giảiquyết một tập các vấn đề liên quan đến việc truyền tải dữ liệu, và cung cấpcho các giao thức tầng cấp trên một dịch vụ được định nghĩa rõ ràng dựa trênviệc sử dụng các dịch vụ của các tầng thấp hơn Hay nói cách khác, các tầngtrên gần với người dùng hơn và làm việc với dữ liệu trừu tượng hơn, chúngdựa vào các tầng cấp dưới để biến đổi dữ liệu thành các dạng mà cuối cùng cóthể truyền đi một cách vật lý

Hình 2 Cấu trúc TCP/IP

Trang 15

4 tầng của TCP/IP:

 Tầng 4 Application: Tầng Application hay còn gọi là tầng ứngdụng Tầng ứng dụng đảm nhận vai trò giao tiếp dữ liệu giữa 2 máy khác nhau thôngqua các dịch vụ mạng khác nhau (duyệt web, chay hay các giao thức trao đổi dữ liệuSMTP, SSH,

FTP…) Dữ liệu khi đến được tầng 4 sẽ được định dạng để kếtnối theo kiểu Byte nối Byte Các thông tin định tuyến tại đây sẽgiúp xác định đường đi đúng của một gói tin

 Tầng 3 Transport: Tầng dữ liệu hoạt động thông qua hai giao thứcchính là TCP (Transmisson Control Protocol) và UDP (User Datagram Protocol).TCP sẽ đảm bảo chất lượng truyền gửi gói tin, tuy nhiên lại mất thời gian khá lâu đểthực hiện các thủ tục kiếm soát dữ liệu Ngược lại, UDP lại cho tốc độ truyền tảinhanh nhưng lại không đảm bảo được chất lượng dữ liệu Ở tầng này, TCP và UDP

sẽ hỗ trợ nhau phân luồng dữ liệu

 Tầng 2 Internet: Tầng Internet đảm nhận việc truyền tải dữ liệu

một cách hợp lý Các giao thức của tầng này bao

gồm IP (Internet Protocol), ICMP (Internet Control MessageProtocol), IGMP (Internet Group Message Protocol)

 Tầng 1 Physical: Tầng vật lý (còn được gọi là tầng liên kết dữ liệu)

là tầng thấp nhất trong mô hình TCP/IP Tầng này chịu trách nhiệm truyền dữ liệugiữa hai thiết bị trong cùng một mạng Tại đây, các gói dữ liệu được đóng vào khung(gọi là Frame) và được định tuyến đi đến đích đã được chỉ định ban đầu

Những giao thức được sử dụng ở mỗi lớp:

- Với Application Layer, FTP truyền các File ASCII hoặc nhị phân theo 2chiều HTTP truyền nội dung giữa Server và Client, SMTP phân phối thư điện tử,DNS hỗ trợ truy nhập Internet,

- Transport Layer: UDP tăng tốc độ truyền tải, TCP đảm bảo truyền dữ liệumột cách an toàn,

- Lớp Internet: ICMP sẽ thông báo lỗi nếu truyền dữ liệu bị hỏng, IP sẽ gánđịa chỉ cho dữ liệu trước khi truyền và định tuyến chúng tới đích,

- Link Layer sử dụng Wi-Fi, Ethernet, Token Ring, Fiber Distributed Data Interface ( FDDI)

Có thể thấy, để đạt được mục đích của mình thì giao thức ở Layer cao hơn

sẽ dùng giao thức ở Layer thấp hơn

8

SVTH: Cao Văn Phúc Lớp: Tự động hóa K58

Trang 16

2.2 HyperText Transfer Protocol (HTTP)

2.2.1 Định nghĩa

HTTP (Hypertext Transfer Protocol) là giao thức truyền tải siêu vănbản Giao thức này nằm trong tầng Application Layer, được sử dụng để truyềnnội dung trang Web từ Web Server đến trình duyệt Web ở Client Là giaothức Client/Server dùng cho Internet - World Wide Web, HTTP thuộc tầngứng dụng của bộ giao thức TCP/IP (Các giao thức nền tảng cho Internet) Cơchế hoạt động chính của HTTP là Request-Response: Web Client sẽ gửiRequest đến Web Server, Web Server xử lý và trả về Response cho WebClient

2.2.2 Lịch sử hình thành

Phiên bản hoàn chỉnh đầu tiên của HTTP là HTTP 0.9 (Ra đời năm1991), tiếp theo là HTTP 1.0 (Giới thiệu chính thức năm 1996), HTTP 1.1(1997) và mới đây nhất là HTTP 2.0 Các phiên bản sau ra đời nhằm thay thếphiên bản trước, kế thừa những chức năng cốt lõi của phiên bản trước nhưng

có nhiều cải tiến và bổ sung Hiện nay thì HTTP 2.0 chưa được dùng phổ biến

do còn khá mới và do các doanh nghiệp Web cũng phần nào ngại chuyển đổi

Do vậy, HTTP 1.1 vẫn là giao thức HTTP phổ biến nhất HTTP 1.0 vẫn cònđược sử dụng nhiều trong hệ thống Proxy và một số ứng dụng cũ

Trang 17

2 Sau khi kết nối thành công, client gửi một HTTP request đến server thôngqua socket interface vừa được thiết lập Trong gói tin request sẽ chứa đường dẫn yêu

cầu (path name) là /category/internet-of-thing.

3 Server sẽ nhận và xử lý request từ client thông qua socket, sau đó đónggói dữ liệu tương ứng và gửi một HTTP response về cho client Dữ liệu trả về sẽ làmột file HTML chứa các loại dữ liệu khác nhau như văn bản, hình ảnh,…

4 Server đóng kết nối TCP

5 Client nhận được dữ liệu phản hồi từ server và đóng kết nối TCP

2.2.4 Format gói tin

Trong suốt phiên làm việc HTTP như ở trên, có hai loại gói tin chínhđược trao đổi là gói tin yêu cầu gửi từ client đến server gọi là “Requestmessage” và gói tin phản hồi gửi từ server đến client gọi là “Responsemessage” Hai loại gói tin này được giao thức HTTP định nghĩa rất cụ thể:

10

SVTH: Cao Văn Phúc Lớp: Tự động hóa K58

Trang 18

HTTP request message

Gồm 3 phần chính là: Request Line, Header và Body

 Request Line là dòng đầu tiên của gói HTTP Request, bao gồm 3 trường:phương thức (method), đường dẫn (path – có nhiều bài viết gọi là URL hoặc URIcho trường này) và phiên phản giao thức (HTTP version)

o Phương thức (method) có thể là: GET, POST, HEAD, PUT vàDELETE Hai phương thức phổ biến nhất là GET và POST,trong ví dụ trên là phương thức GET thường dùng để yêu cầu tàinguyên cung cấp trong trường URL

o Đường dẫn (path) dùng để định danh nguồn tài nguyên mà client yêu cầu, bắt buộc phải có ít nhất là dấu “/”

o Phiên bản giao thức (HTTP version): là phiên bản HTTP client đang sử dụng (thường là HTTP/1.0 hoặc HTTP/1.1)

 Request Headers: các dòng này là không bắt buộc, viết ở định dạng

“Name:Value” cho phép client gửi thêm các thông tin bổ sung về thông điệp HTTPrequest và thông tin về chính client Một số header thông dụng như:

o Accept: loại nội dung có thể nhận được từ thông điệp response Vídụ: text/plain, text/html

o Accept-Encoding: các kiểu nén được chấp nhận Ví dụ: gzip, deflate, xz, exi…

o Connection: tùy chọn điều khiển cho kết nối hiện thời Ví dụ:

Keep-Alive, Close…

o Cookie: thông tin HTTP Cookie từ server

 Request Body: là dữ liệu gửi từ client đến server trong gói tin HTTPrequest Đa số các gói tin gửi theo phương thức GET sẽ có Body trống,

11

SVTH: Cao Văn Phúc Lớp: Tự động hóa K58

Trang 19

các phương thức như POST hay PUT thường dùng để gửi dữ liệu nên

sẽ có bao gồm dữ liệu trong trường Body

HTTP response message

Định dạng gói tin HTTP response cũng gồm 3 phần chính là: Status line, Header và Body

 Dòng Status line gồm 3 trường là phiên bản giao thức (HTTP version),

mã trạng thái (Status code) và mô tả trạng thái (Status text):

o Phiên bản giao thức (HTTP version): phiên bản của giao thức HTTP mà server hỗ trợ, thường là HTTP/1.0 hoặc HTTP/1.1

o Mã trạng thái (Status code): mô tả trạng thái kết nối dưới dạng số, mỗi trạng thái sẽ được biểu thị bởi một số nguyên Ví dụ: 200,

404, 302

o Mô tả trạng thái (Status text): mô tả trạng thái kết nối dưới dạng văn bản một cách ngắn gọn, giúp người dùng dễ hiểu hơn so với

mã trạng thái Ví du: 200 OK, 404 Not Found, 403 Forbiden,

 Các dòng Response Header của gói tin response có chức năng tương tựnhư gói tin request, giúp server có thể truyền thêm các thông tin bổ sung đến clientdưới dạng các cặp “Name:Value”

 Phần Body là nơi đóng gói dữ liệu để trả về cho client, thông thườngtrong duyệt web thì dữ liệu trả về sẽ ở dưới dạng một trang HTML để trình duyệt cóthể thông dịch được và hiển thị ra cho người dùng

2.2.5 Ưu nhược điểm HTTP

 Ưu điểm

 Khả năng tìm kiếm: Mặc dù HTTP là một giao thức nhắn tin đơn giản, nóbao gồm khả năng tìm kiếm cơ sở dữ liệu với một yêu cầu duy nhất Điều này chophép giao thức được sử dụng để thực hiện các tìm kiếm SQL và trả về kết quả đượcđịnh dạng thuận tiện trong tài liệu HTML;

Trang 20

 Dễ lập trình: HTTP được mã hóa dưới dạng văn bản thuần túy và do đó

dễ theo dõi và triển khai hơn các giao thức sử dụng mã yêu cầu tra cứu Dữ liệu đượcđịnh dạng dưới dạng dòng văn bản chứ không phải dưới dạng chuỗi biến hoặctrường;

 Bảo mật: HTTP 1.0 tải xuống từng tệp qua một kết nối độc lập và sau

đó đóng kết nối Vì vậy, điều này làm giảm đáng kể nguy cơ bị đánhchặn trong quá trình truyền

 Không phù hợp với các thiết bị nhỏ: Vì các thiết bị nhỏ, chẳng hạn nhưcảm biến, không yêu cầu nhiều tương tác và chúng tiêu thụ rất ít năng lượng, HTTPquá nặng nên không phù hợp cho các thiết bị này Một yêu cầu HTTP yêu cầu tốithiểu chín gói TCP, thậm chí nhiều hơn khi bạn xem xét mất gói do kết nối kém vàtiêu đề văn bản thuần túy có thể rất dài dòng;

 Không được thiết kế cho giao tiếp dựa trên sự kiện: Hầu hết các ứng dụngIoT đều dựa trên sự kiện Các thiết bị cảm biến đo một số biến như nhiệt độ, chấtlượng không khí và có thể cần đưa ra các quyết định theo hướng sự kiện như tắt côngtắc HTTP được thiết kế cho giao tiếp dựa trên phản hồi yêu cầu thay vì giao tiếptheo hướng sự kiện Ngoài ra, việc lập trình các hệ thống dựa trên sự kiện này sửdụng giao thức HTTP trở thành một thách thức lớn, đặc biệt là do tài nguyên máytính trên các thiết bị cảm biến có hạn;

 Vấn đề thời gian thực: Sau khi yêu cầu một tài nguyên đến máy chủ,Client phải đợi Server phản hồi, dẫn đến việc truyền dữ liệu chậm Cảm biến IoT làcác thiết bị nhỏ với tài nguyên máy tính rất hạn chế và do đó không thể hoạt độngđồng bộ một cách hiệu quả Tất cả các giao thức IoT được sử dụng rộng rãi đều dựatrên mô hình không đồng bộ

2.3 Hypertext Transfer Protocol Secure (HTTPS)

2.3.1 Định nghĩa HTTPS

HTTPS (Hypertext Transfer Protocol Secure) là giao thức truyền tảisiêu văn bản an toàn Thực chất, đây chính là giao thức HTTP nhưng tích hợpthêm Chứng chỉ bảo mật SSL nhằm mã hóa các thông điệp giao tiếp để tăngtính bảo mật Có thể hiểu, HTTPS là phiên bản HTTP an toàn, bảo mật hơn

13

SVTH: Cao Văn Phúc Lớp: Tự động hóa K58

Ngày đăng: 30/12/2021, 18:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w