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

Tiểu luận môn học internet & giao thức Đề tài tìm hiểu giao thức httphttps

18 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Tìm Hiểu Giao Thức HTTP/HTTPS
Tác giả Kiều Văn Sơn, Nguyễn Chân Tâm, Nguyễn Hữu Tài, Lê Thái Vũ, Văn Tài
Người hướng dẫn Th.s Nguyễn Khánh Toàn
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Internet & Giao Thức
Thể loại tiểu luận
Năm xuất bản 2024
Thành phố Hồ Chí Minh
Định dạng
Số trang 18
Dung lượng 1,01 MB

Nội dung

Ví dụ: Khi người dùng gõ một địa chỉ Web trên trình duyệt, một yêu cầu HTTP sẽ được gửi đi tới máy chủ web để ra lệnh và hướng dẫn nó tìm đúng trang Web được yêu cầu và kéo về mở trên t

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH

TIỂU LUẬN MÔN HỌC INTERNET & GIAO THỨC

ĐỀ TÀI: TÌM HIỂU GIAO THỨC

HTTP/HTTPS

Giáo viên hướng

Thành Viên:

Nguyễn Chân

Nguyễn Hữu

Trang 2

Hồ Chí Minh - 2024

MỤC LỤC

DANH MỤC TỪ VIẾT TẮT 2

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ GIAO THỨC HTTP/HTTPS 3

1.1 Giao thức HTTP 3

1.2 Giao thức HTTPS 3

1.3 Vai trò của HTTP/HTTPS 3

1.4 Ưu và nhược điểm của HTTP/HTTPS 4

1.5 Các phiên bản của HTTP 4

CHƯƠNG 2: ĐỊNH DANH THÔNG ĐIỆP CỦA GIAO THỨC VÀ PHÂN TÍCH Ý NGHĨA CỦA CÁC TRƯỜNG TIN 5

2.1 Thông điệp yêu cầu (Request message) 5

2.2 Thông điệp phản hồi (HTTP Respone) 7

CHƯƠNG 3: PHƯƠNG THỨC HOẠT ĐỘNG CỦA GIAO THỨC HTTP 10

3.1 Phương thức hoạt động của giao thức HTTP 10

3.1.1 Kết nối không liên tục 10

3.1.2 Kết nối liên tục 12

3.1.3 So sánh ưu và nhược điểm của kết nối liên tục và không liên tục 12

3.1.4 Ứng dụng của giao thức HTTP vào thực tế 13

3.2 Phương Thức hoạt động của HTTPS 13

3.2.1 Chứng chỉ SSL/TLS 14

3.2.2 Ứng dụng của HTTPS 14

CHƯƠNG 4: KẾT LUẬN 15

Trang 3

TÀI LIỆU THAM KHẢO 15

Trang 4

DANH MỤC CÁC TỪ VIẾT TẮT

DANH MỤC CÁC BẢNG

Bảng 3 So sánh kết nối kiên tục và không liên tục

DANH MỤC HÌNH ẢNH

Hình 3 Định dạng thông điệp yêu cầu

Hình 4 Hoạt động của kết nối liên tục và không liên tục Hình 5 Hoạt động của kết nối không liên tục

Hình 6 Quá trình hoạt động của SSL/TLS

STT

1 HTTP Hypertext Transfer Protocol

2 HTTPS Hypertext Transfer Protocol Secure

3 SSL Secure Sockets Layer

4 TLS Transport Layer Security

5 URL Uniform Resource Locator

6 TCP Transmission Control Protocol

7 IOT Internet of Things

8 PKI Public Key Infrastructure

9 QUIC Quick UDP Internet Connections

10 SEO Search Engine Optimization

11 RFC Request for Comments

Trang 5

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ GIAO THỨC HTTP 1.1 Giao thức HTTP

- Hypertext Transfer Protocol (HTTP) là giao thức truyền tải siêu văn bản HTTP là một giao thức được phát triển để giúp truyền tải thông tin trên Internet Điều này cho phép chúng ta truy cập vào các trang web, tải xuống các tệp tin, xem các hình ảnh, video… Các thông điệp HTTP được truyền trực tiếp, được đọc và hiểu bởi HTTP server và HTTP client (trình duyệt) Các lệnh từ client đến server được nhúng vào trong một thông điệp yêu cầu; nội dung trả lời cho yêu cầu và các thông tin khác được nhúng trong một thông điệp đáp ứng

- HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP  HTTP hoạt động trên nền tảng Internet TCP/IP và được truyền qua kết nối TCP HTTP đơn giản chỉ sử dụng một kết nối TCP trên cổng số 80 và dữ liệu được chuyển giao giữa client và server

Ví dụ: Khi người dùng gõ một địa chỉ Web trên trình duyệt, một yêu

cầu HTTP sẽ được gửi đi tới máy chủ web để ra lệnh và hướng dẫn nó tìm đúng trang Web được yêu cầu và kéo về mở trên trình duyệt Web HTTP

là giao thức truyền tải các file từ một máy chủ Web vào một trình duyệt Web để người dùng có thể xem một trang Web đang hiện diện trên

Internet

1.2 Giao thức HTTPS

Hình 1: Giao thức HTTPS

- HTTPS (Giao thức truyền siêu văn bản bảo mật) không phải là một giao thức riêng biệt

mà là phiên bản sử dụng HTTP thông thường qua kết nối SSL/TLS được mã hóa để xác thực trang web được truy cập và bảo vệ quyền riêng tư cùng tính toàn vẹn của dữ liệu HTTPS thường được sử dụng để bảo vệ các giao dịch trực tuyến có tính bảo mật cao

- SSL/TLS là giao thức bảo mật tầng giao vận, thường được sử dụng để mã hóa thông điệp HTTP trước khi truyền và giải mã khi đến Cả TLS và SSL đều sử dụng hệ thống hạ tầng khóa công khai bất đối xứng PKI để tạo ra kênh an toàn qua mạng không an toàn

Trang 6

1.3 Vai trò của HTTP/HTTPS

- HTTP đóng vai trò như xương sống của World Wide Web, cho phép truyền tải thông tin giữa máy khách và máy chủ

- HTTPS bổ sung thêm lớp bảo mật cho HTTP, giúp bảo vệ thông tin nhạy cảm trong quá trình truyền tải

- HTTP và HTTPS đảm bảo việc truyền tải thông tin giữa trình duyệt và máy chủ HTTP giúp lấy nội dung từ các trang web, trong khi HTTPS bảo vệ các giao dịch trực tuyến, bảo mật thông tin người dùng

1.4 Ưu và nhược điểm của HTTP/HTTPS

Giao

thức

Ưu điểm Nhược điểm HTTP - Khả năng tìm kiếm: Hỗ trợ tìm kiếm

cơ sở dữ liệu với một yêu cầu duy nhất

và trả về kết quả được định dạng trong

HTML

- Dễ lập trình: Sử dụng mã hóa văn bản

thuần túy, dễ theo dõi và triển khai

- Bảo mật tạm thời: HTTP 1.0 tải xuống

từng tệp qua một kết nối độc lập và

đóng kết nối, giảm nguy cơ bị đánh

chặn trong quá trình truyền tải

- Tiêu tốn nhiều tài nguyên: Yêu cầu nhiều gói TCP và không phù hợp với các thiết bị nhỏ như cảm biến hoặc thiết bị IoT tiêu thụ

ít năng lượng

- Không hỗ trợ giao tiếp dựa trên sự kiện: HTTP chỉ hỗ trợ phản hồi theo yêu cầu, không phù hợp cho các ứng dụng yêu cầu

sự kiện thời gian thực (như IoT)

- Độ trễ cao: HTTP không đảm bảo thời gian phản hồi nhanh, có thể gây ra độ trễ trong các ứng dụng đòi hỏi tốc độ

HTTPS - Bảo mật cao: Sử dụng mã hóa

SSL/TLS để bảo vệ thông tin khỏi bị

đánh chặn và thay đổi trong quá trình

truyền tải

- Xác thực: Đảm bảo trang web chính

thống bằng cách xác minh chứng chỉ,

tránh các trang web giả mạo

- Tăng uy tín và tin tưởng: HTTPS

được xem là tiêu chuẩn cho các trang

web yêu cầu thông tin nhạy cảm, từ đó

tăng độ tin cậy từ người dùng và cải

thiện thứ hạng SEO

- Hiệu suất giảm: Quá trình mã hóa và giải

mã dữ liệu có thể làm giảm hiệu suất, mặc

dù sự chênh lệch này đã giảm thiểu nhờ công nghệ hiện đại

- Chi phí triển khai: Cần chi phí cho chứng chỉ SSL/TLS, dù hiện nay có nhiều tùy chọn miễn phí hoặc giá rẻ

Bảng 1: Ưu và nhược điểm của HTTP và HTTPS

1.5 Các phiên bản của HTTP

Trang 7

HTTP/1.1 1997 Còn thông dụng

Bảng 2: Các phiên bản của HTTP

- HTTP/0.9 (1991) Phiên bản đầu tiên của HTTP, được giới thiệu vào năm 1991, chỉ hỗ trợ yêu cầu GET để truy xuất dữ liệu từ máy chủ.Không

hỗ trợ header và chỉ có khả năng truyền văn bản thuần (plain text).Giao thức rất đơn giản, không hỗ trợ các định dạng phức tạp như hình ảnh hoặc file đa phương tiện

- HTTP/1.0 (1996)Được chuẩn hóa vào năm 1996 trong RFC 1945 Cải tiến lớn: HTTP/1.0 hỗ trợ các phương thức yêu cầu (request methods) khác ngoài GET, như POST và HEAD, giúp mở rộng khả năng giao tiếp giữa client và server Hỗ trợ các HTTP header, cho phép truyền tải thông tin meta (chẳng hạn như loại dữ liệu hoặc độ dài nội dung) Một kết nối chỉ phục vụ cho một yêu cầu, sau đó kết nối bị đóng, làm giảm hiệu suất nếu cần nhiều yêu cầu liên tiếp

- HTTP/1.1, phát hành vào năm 1996–1997, là phiên bản đầu tiên của HTTP và đã phục vụ đến đầu thập kỷ 21 Tuy nhiên, với sự phát triển mạnh mẽ của Internet, phiên bản này đã trở nên chậm chạp do phải xử lý nhiều kết nối

- HTTP/2 được phát triển để khắc phục nhược điểm của HTTP/1.1 Một trong những thay đổi quan trọng là cách dữ liệu được truyền, không còn

sử dụng định dạng văn bản mà chuyển sang truyền dữ liệu ở dạng nhị phân Điều này giúp giảm độ trễ và tăng tốc độ tải trang web HTTP/2 cũng hỗ trợ server push, cho phép máy chủ truyền dữ liệu đến trình duyệt mà không cần yêu cầu từ phía máy khách

- HTTP/3 là bước tiến mới nhất trong chuỗi phát triển của HTTP, hứa hẹn cải thiện hiệu suất và độ tin cậy so với HTTP/2 Sự đổi mới lớn nhất của HTTP/3 nằm ở việc thay thế giao thức truyền dữ liệu TCP bằng QUIC (Quick UDP Internet Connections), giúp giảm độ trễ và tối ưu hóa việc truyền dữ liệu HTTP/3 được thiết kế để hỗ trợ các ứng dụng đòi hỏi độ trễ thấp như phát trực tuyến theo thời gian thực

- Ngoài ra, Các phiên bản hiện đại của HTTP như HTTP/2 thường được kết hợp với HTTPS để cung cấp một cơ chế truyền tải dữ liệu an toàn và đáng tin cậy

CHƯƠNG 2: ĐỊNH DANH THÔNG ĐIỆP CỦA CÁC

GIAO THỨC VÀ PHÂN TÍCH Ý NGHĨA TRƯỜNG TIN

2.1 Thông điệp yêu cầu (Request message)

- Thông điệp HTTP được chia thành hai loại: thông điệp yêu cầu (request) và thông điệp phản hồi (response)

Trang 8

- Khi người sử dụng yêu cầu một trang Web (ví dụ khi người đó nhấp chuột vào một siêu liên kết - hyperlink), trình duyệt sẽ gửi các bản tin yêu cầu HTTP về các đối tượng trong trang tới máy chủ Máy chủ nhận được yêu cầu này và đáp ứng bằng bản tin đáp ứng HTTP chứa các đối tượng đó

Hình 2: Giao dịch của HTTP

- Phân tích ý nghĩa các trường tin:

-Bản tin trên là một yêu cầu HTTP mà máy khách (trình duyệt web) gửi đến máy chủ để yêu cầu tài nguyên cụ thể Cụ thể, máy khách yêu cầu tài nguyên /products/view.html từ máy chủ www.techstore.com sử dụng phương thức GET theo giao thức HTTP/1.1 Máy khách cũng yêu cầu máy chủ đóng kết nối sau khi hoàn thành (Connection: close), thông báo rằng nó là trình duyệt Chrome phiên bản 93.0 (User-agent:

Trang 9

Chrome/93.0), và mong muốn nhận phản hồi bằng tiếng Anh (Accept-language: en) Từ đây, ta có thể rút ra thông điệp yêu cầu bao gồm:

+ Dòng yêu cầu: gồm 3 trường là methods (phương thức), URL và version (phiên bản):

 Phương thức xác định loại yêu cầu, bao gồm: GET, HEAD, POST, PUT, TRACE, CONNECT, DELETE và OPTIONS Các bản tin HTTP chủ yếu sử dụng phương thức GET Phương thức GET được sử dụng khi trình duyệt yêu cầu một đối tượng, với đối tượng yêu cầu được xác định trong trường URL Trong ví dụ hình … trình duyệt yêu cầu đối tượng /products/view.html Một số ý nghĩa phương thức lệnh cơ bản:

 GET: Lấy tài nguyên từ máy chủ mà không thay đổi trạng thái của nó Ví

dụ, khi bạn truy cập một trang web, trình duyệt gửi yêu cầu GET

 POST: Gửi dữ liệu lên máy chủ, thường là từ biểu mẫu web POST thường được dùng trong các trường hợp yêu cầu có dữ liệu đính kèm (như khi đăng nhập)

 PUT: Ghi đè tài nguyên hiện có hoặc tạo mới tài nguyên với dữ liệu cung cấp

 DELETE: Xóa một tài nguyên trên máy chủ

 HEAD: Tương tự như GET, nhưng không trả về nội dung thực tế, chỉ thông tin tiêu đề

 OPTIONS: Lấy thông tin về các phương thức HTTP mà máy chủ hỗ trợ cho một tài nguyên cụ thể

 TRACE: Yêu cầu một echo (phản hồi lại chính yêu cầu) từ máy chủ, giúp kiểm tra đường dẫn

 URL xác định tài nguyên được yêu cầu

 Phiên bản cho biết phiên bản giao thức HTTP đang được sử dụng

+ Các dòng tiêu đề (header): cung cấp thông tin bổ sung về yêu cầu, chẳng hạn như loại trình duyệt, ngôn ngữ ưa thích và thông tin về

bộ nhớ đệm

Ví Dụ: Sau dòng yêu cầu, các dòng tiêu đề cung cấp thông tin bổ sung về yêu cầu hoặc thiết lập tham số cho giao dịch Một số tiêu

đề phổ biến bao gồm:

 Host: Xác định tên miền của máy chủ Đây là trường bắt buộc trong HTTP/1.1 Ví dụ: Host: www.techstore.com

 User-Agent: Cung cấp thông tin về trình duyệt hoặc ứng dụng thực hiện yêu cầu Ví dụ: User-Agent: Chrome/93.0

 Accept: Xác định các loại tài nguyên mà máy khách có thể xử lý, ví dụ: Accept: text/html (chấp nhận nội dung HTML)

 Accept-Language: Chỉ định ngôn ngữ mong muốn của nội dung phản hồi Ví dụ: Accept-Language: en (tiếng Anh)

 Connection: Xác định việc máy khách muốn giữ kết nối mở hay đóng sau khi yêu cầu hoàn thành Ví dụ: Connection:

close

+ Phần thân (body): chứa dữ liệu được gửi đến máy chủ, ví dụ như dữ liệu được nhập vào một biểu mẫu

Trang 10

2.2 Thông điệp phản hồi (HTTP Response)

- Bản tin đáp ứng (HTTP Reponse) là gói tin được gửi bởi máy chủ đến máy khách để phản hồi yêu cầu mà máy khách gửi lên Bản tin đáp ứng chứa những thông tin được yêu cầu bởi máy khách

Hình 3: Định dạng thông điệp yêu cầu

- Phân tích ý nghĩa của các trường tin:

+ Dòng trạng thái (Status Line): Dòng trạng thái là phần đầu tiên

của thông điệp phản hồi Nó bao gồm ba thành phần chính:

 HTTP-Version: Phiên bản của giao thức HTTP mà server đang

sử dụng Phiên bản phổ biến hiện nay là HTTP/1.1 và HTTP/2

 Status-Code: Là mã số ba chữ số, đại diện cho kết quả xử lý yêu cầu từ phía server Dưới đây là phân loại mã trạng thái:

 1xx (Thông tin): Cho biết yêu cầu đã được nhận và đang xử lý

VD: 100 Continue, 101 Switching Protocols

 2xx (Thành công): Yêu cầu được xử lý thành công

VD: 200 OK, 201 Created

 3xx (Chuyển hướng): Client cần thực hiện thêm hành động (chuyển hướng)

VD: 301 Moved Permanently, 302 Found

 4xx (Lỗi từ phía client): Yêu cầu từ client có vấn đề

VD: 400 Bad Request, 401 Unauthorized, 403 Forbidden,

404 Not Found

 5xx (Lỗi từ phía server): Server gặp lỗi khi xử lý yêu cầu VD: 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable

 Reason-Phrase: Là cụm từ ngắn giải thích mã trạng thái Ví dụ, với mã trạng thái 200, Reason-Phrase sẽ là OK Điều này giúp người đọc dễ hiểu được mã trạng thái

Trang 11

+ Trường tiêu đề phản hồi (Response Headers): Các tiêu đề phản hồi cung cấp thông tin meta về phản hồi từ server, và chúng có thể ảnh hưởng đến việc xử lý phản hồi của client Dưới đây là một số trường tiêu đề quan trọng:

Content-Type: Xác định loại nội dung được gửi trong phần thân của phản hồi Đây là trường quan trọng để client biết cách xử lý dữ liệu trả về

Ví dụ: Content-Type: text/html: Dữ liệu là trang HTML

Content-Type: application/json: Dữ liệu là JSON

Content-Length: Độ dài của nội dung (số byte) được trả về trong phần thân phản hồi Client sử dụng trường này để biết kích thước của dữ liệu sẽ nhận

Ví dụ: Content-Length: 3489

Date: Thời gian mà phản hồi được server tạo ra Đây là trường tùy chọn, nhưng thường được dùng để theo dõi thời gian chính xác phản hồi được gửi đi

Ví dụ: Date: Tue, 22 Oct 2024 10:00:00 GMT

Server: Xác định thông tin về phần mềm máy chủ đã xử lý yêu cầu Trường này thường cung cấp tên và phiên bản của phần mềm máy chủ

Ví dụ: Server: Apache/2.4.29 (Ubuntu)

Set-Cookie: Dùng để gửi cookie từ server đến client Client sẽ lưu trữ cookie này và gửi nó trong các yêu cầu sau để duy trì phiên làm việc (session)

Ví dụ: Set-Cookie: sessionid=123456; Expires=Wed, 23 Oct

2024 10:00:00 GMT; Path=/

Connection: Xác định liệu kết nối TCP nên được giữ mở hay đóng sau khi phản hồi hoàn tất Một số giá trị phổ biến:

 Connection: keep-alive: Giữ kết nối mở để client có thể gửi thêm yêu cầu mà không cần tạo kết nối mới

 Connection: close: Đóng kết nối sau phản hồi

Cache-Control: Điều khiển cách dữ liệu được lưu trữ trong bộ nhớ cache (bộ nhớ tạm thời) của client hoặc các bộ nhớ đệm trung gian Trường này giúp tối ưu hóa việc tải tài nguyên

Ví dụ: Cache-Control: no-cache: Không lưu bộ nhớ đệm

Cache-Control: max-age=3600: Lưu bộ nhớ đệm trong

3600 giây

Trang 12

Expires: Cho biết thời gian hết hạn của tài nguyên Sau thời gian này, client sẽ cần gửi yêu cầu mới để nhận tài nguyên cập nhật

Ví dụ: Expires: Wed, 23 Oct 2024 10:00:00 GMT

 Location: Sử dụng trong các phản hồi chuyển hướng (3xx) để chỉ định URL mà client nên truy cập tiếp theo

Ví dụ: Location: https://www.example.com/new-page

 Last-Modified: Cho biết thời gian tài nguyên được chỉnh sửa lần cuối trên server Điều này giúp client quyết định liệu có cần tải lại tài nguyên hay không

Ví dụ: Last-Modified: Tue, 21 Oct 2024 09:00:00 GMT

 ETag:Là mã định danh duy nhất của phiên bản tài nguyên hiện tại Client có thể sử dụng ETag để kiểm tra xem tài nguyên đã thay đổi chưa (hữu ích cho việc kiểm tra điều kiện với các phương thức GET, HEAD)

Ví dụ: ETag: "33a64df551425fcc55e4d42a148795d9f25f89d"

 Transfer-Encoding: Xác định cách thức dữ liệu phản hồi được

mã hóa trước khi truyền đi Một giá trị phổ biến là chunked, chỉ ra rằng dữ liệu được chia thành các khối nhỏ

Ví dụ: Transfer-Encoding: chunked + Dòng trống (Blank Line): Dòng này có vai trò phân cách giữa phần tiêu đề và phần thân của phản hồi Nó là một dòng trống không có ký tự nào

+Phần thân (Body): Phần thân chứa nội dung thực tế của phản hồi

từ server, thường là trang HTML, JSON, XML, hình ảnh, hoặc bất kỳ dữ liệu nào khác mà server trả về Các loại nội dung phổ biến:

 HTML: Nội dung của một trang web

 JSON: Dữ liệu trả về từ các API dạng RESTful

 File nhị phân: Ảnh, video, tệp tin, v.v

CHƯƠNG 3: PHƯƠNG THỨC HOẠT ĐỘNG CỦA GIAO THỨC HTTP

3.1 Phương thức hoạt động của HTTP.

- HTTP (Hypertext Transfer Protocol) là một giao thức hoạt động dựa trên mô hình client-sever (máy khách-máy chủ), nơi máy khách (thường là trình duyệt web) gửi yêu cầu và máy chủ phản hồi lại với tài nguyên hoặc dữ liệu Quá trình truyền thông giữa máy khách và máy chủ diễn

Ngày đăng: 23/12/2024, 16:29

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

TÀI LIỆU LIÊN QUAN

w