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

19 2 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ả Nguyễn Chân Tâm
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 môn học
Năm xuất bản 2024
Thành phố Hồ Chí Minh
Định dạng
Số trang 19
Dung lượng 2,13 MB

Nội dung

HTTP là một giao thức được sử dụng chủ yếu để truy cập dữ liệu trên World Wide Web.. HTTP/0.9 : Phiên bản chính thức đầu tiên của HTTP được viết dưới dạng tài liệu đơn giản, dài dưới 700

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ảng viên

hướng dẫn

: Th.s NGUYỄN KHÁNH TOÀN

Họ và tên sinh

viên

: NGUYỄN CHÂN TÂM

Trang 2

MỤC LỤC

MỤC LỤC 2

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

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

1.1 Giao thức HTTP 4

1.1.1 Khái niệm về giao thức HTTP 4

1.1.2 Lịch sử về giao thức HTTP 4

1.2 Ưu và nhược điểm của giao thức HTTP 5

1.3 Các phiên bản của giao thức HTTP 5

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 6

2.1 Định danh thông điệp 6

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

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

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

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

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

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

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

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

CHƯƠNG 4: TỔNG QUAN VỀ GIAO THỨC HTTPS 14

4.1 Giới thiệu về giao thức HTTPS 14

4.1.1 Khái niệm về HTTPS 14

4.1.2 Ưu và nhược điểm của HTTPS 14

4.2 Phương Thức hoạt động của HTTPS 15

4.2.1 Phương thức hoạt động của HTTPS 15

4.2.2 Chứng chỉ SSL/TLS 15

4.3 Các ứng dụng của HTTPS 17

CHƯƠNG 5: KẾT LUẬN 17

TÀI LIỆU THAM KHẢO 17

Trang 3

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

1 HTTP: Hypertext Transfer Protocol

2 HTTPS: Hypertext Transfer Protocol Secure

3 TCP/IP: Transmission Control Protocol/Internet Protocol

4 TCP: Transmission Control Protocol

5 TLS: Transport Layer Security

6 SSL: Secure Sockets Layer

7 HTML: HyperText Markup Language

8 XML: Extensible Markup Language

9 JSON: JavaScript Object Notation

10 URL: Uniform Resource Locator

11 API: Application Programming Interface

Trang 4

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

1.1 Giao thức HTTP

1.1.1 Khái niệm về 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 sử dụng chủ yếu để truy cập dữ liệu trên World Wide Web 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 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 là một giao thức không trạng thái vì mỗi giao dịch được thực hiện riêng biệt mà không có bất kỳ kiến thức nào về các giao dịch trước đó, có nghĩa là khi giao dịch được hoàn thành giữa trình duyệt web và server, kết nối sẽ bị mất

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.1.2 Lịch sử về giao thức HTTP

- Tim Berners-Leelà người khởi xướng cho sự hình thành và phát triển của HTTP vào năm 1989 tại CERN

-HTTP được giới thiệu lần đầu vào những năm 90 Cho đến ngày nay, nó vẫn chiếm một vị trí rất quan trọng trong thế giới Internet và không ngừng

Trang 5

được phát triển mở rộng HTTP được xem như là giao thức ứng dụng của

bộ các giao thức nền tảng cho Internet TCP/IP

-Nhờ vào đặc tính mở rộng không giới hạn của nó, ngoài các tài liệu siêu văn bản, HTTP còn được dùng để tìm nạp hình ảnh và video Thậm chí là đăng tải cả nội dung lên server Vì thế, HTTP đóng vai trò quan trọng trong quy trình cập nhật trang web thông qua khả năng nạp dữ liệu cho các tài liệu theo yêu cầu

1.2 Ưu và nhược điểm của giao thức HTTP

Ưu điểm của HTTP:

 Đơn giản và dễ sử dụng: Cấu trúc của HTTP rất đơn giản, dễ hiểu và

dễ triển khai, giúp các nhà phát triển web dễ dàng xây dựng và quản lý các ứng dụng web

 Phổ biến và được hỗ trợ rộng rãi: HTTP được hầu hết các trình duyệt web và máy chủ web hỗ trợ, đảm bảo tính tương thích cao

 Hiệu quả: HTTP được thiết kế để truyền tải dữ liệu một cách hiệu quả, đặc biệt khi truyền tải các tài liệu văn bản

 Linh hoạt: HTTP có thể được sử dụng để truyền tải nhiều loại dữ liệu khác nhau, bao gồm văn bản, hình ảnh, video, âm thanh,

Nhược điểm của HTTP:

 Không an toàn: HTTP không được mã hóa, khiến dữ liệu truyền tải trên mạng dễ bị lộ và có nguy cơ bị tấn công Điều này đặc biệt quan trọng khi xử lý thông tin nhạy cảm như thông tin cá nhân và thông tin tài chính

 Không đảm bảo tính toàn vẹn của dữ liệu: HTTP không cung cấp cơ chế đảm bảo tính toàn vẹn của dữ liệu, có nghĩa là dữ liệu có thể bị thay đổi hoặc bị can thiệp trong quá trình truyền tải

 Không xác thực được danh tính của máy chủ: Bạn không thể chắc chắn rằng máy chủ mà bạn đang kết nối là máy chủ đích thực, điều này tạo cơ hội cho các cuộc tấn công giả mạo

Trang 6

1.3 Các phiên bản của giao thức HTTP

HTTP/0.9 : Phiên bản chính thức đầu tiên của HTTP được viết dưới dạng

tài liệu đơn giản, dài dưới 700 từ và phiên bản này được đặt tên là

HTTP/0.9, chỉ hỗ trợ phương thức GET, cho phép khách hàng chỉ truy xuất tài liệu HTML từ máy chủ, nhưng không hỗ trợ bất kỳ định dạng tệp hoặc tải lên thông tin nào khác

HTTP/1.0: Mang lại nhiều cải tiến và tiêu chuẩn hóa hơn so với HTTP/0.9

Phiên bản này bổ sung các phương thức mới như POST và HEAD, cho phép truyền tải không chỉ HTML mà còn các loại dữ liệu khác

HTTP/1.1: Mang lại nhiều cải tiến về hiệu suất và tính năng so với

HTTP/1.0

HTTP/2: Mang lại nhiều cải tiến đáng kể so với HTTP/1.1 nhằm nâng cao

hiệu suất, tính bảo mật và độ tin cậy của giao thức Các cải tiến này đáp ứng nhu cầu ngày càng cao của các ứng dụng web hiện đại về tốc độ, hiệu

quả và khả năng xử lý dữ liệu lớn.

HTTP/3: Là một bước tiến lớn so với các phiên bản trước đó của giao thức

HTTP HTTP/3.0 cải thiện đáng kể về hiệu suất, độ trễ và độ tin cậy bằng cách sử dụng giao thức QUIC thay cho TCP

Trang 7

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 Định danh thông điệp

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

-Thông điệp yêu cầu (HTTP Request) là thông tin được gửi từ máy khách

lên máy chủ, để yêu cầu máy chủ tìm hoặc xử lý một số thông tin, dữ liệu

mà máy khách cần Bản tin yêu cầu có thể là một file text dưới dạng XML hoặc Json mà cả hai đều có thể hiểu được Hiện nay dạng JSON được sử dụng phổ biến

Trang 8

-Cấu trúc của HTTP Request bao gồm 3 thành phần chính cần quan tâm:

• Request Method: Điều này cho biết hành động cụ thể mà Request

mong đợi nhận được từ máy chủ trong Response của nó

-Các phương thức HTTP Request Method:

 Get là phương thức để máy khách nhận dữ liệu từ máy chủ thông qua đường dẫn URL nằm trên thanh địa chỉ của trình duyệt Máy chủ

sẽ nhận đường dẫn đó và phân tích trả về kết quả cho bạn Nó là một phương thức được sử dụng phổ biến mà không cần có request body

 Phương thức Post là phương thức gửi dữ liệu từ máy khách đến máy chủ giúp ta có thể thêm mới dữ liệu hoặc cập nhật dữ liệu đã có vào kho dữ liệu Thông tin cần thêm hoặc chỉnh sửa sẽ được gửi lên thông qua phần request body

Trang 9

 Phương thức PUT hoạt động của nó tương tự như phương thức Post nhưng nó chỉ được sử dụng để cập nhật dữ liệu đã có trong kho dữ liệu Khi sử dụng, ta phải thay đổi toàn bộ dữ liệu của một đối tượng

 Phương thức PATCH tượng tự như Post và Put, nhưng Patch được sử dụng khi phải cập nhật một phần dữ liệu của đối tượng

 Phương thức DELETE giống như tên gọi, khi sử dụng phương thức Delete sẽ xoá các dữ liệu của máy chủ Cũng giống như GET,

phương thức này không cần phải truyền lên phần request body

 Phương thức HEAD gần giống với GET, tuy nhiên nó không có

response body Nếu sử dụng phương thức GET tới đường dẫn thì sẽ trả về dữ liệu, còn khi sử dụng HEAD tới đường dẫn nhưng không nhận được dữ liệu Truy vấn HEAD hữu ích trong trường hợp khi chúng ta sử dụng nó để kiểm tra API có hoạt động không do không

có response body nên thời gian phản hồi nhanh hơn so với phương thức Get Ứng dụng của nó là thường được sử dụng để kiếm tra trước khi tải dữ liệu về máy do cứ gọi đến api dowload sẽ download file nên thêm phương thức head vào nó kiểm tra xem api có đang hoạt động tốt không tránh down nhiều hay không như ý muốn

Request URL:

Một URL (Uniform Resource Locator) được sử dụng để xác định duy nhất

một tài nguyên trên Web Một URL có cấu trúc như sau:

protocol://hostname:port/path-and-file-name

Trong một URL có 4 thành phần:

Protocol: giao thức tầng ứng dụng được sử dụng bởi client và server Hostname: tên DNS domain

Port: Cổng TCP để server lắng nghe request từ client

Path-and-file-name: Tên và vị trí của tài nguyên yêu cầu

• Request Header: Điều này bao gồm dữ liệu như loại trình duyệt đang

được sử dụng và dữ liệu mà Request đang tìm kiếm từ máy chủ Nó cũng

có thể bao gồm cookie, hiển thị thông tin được gửi trước đó từ máy chủ xử

lý yêu cầu

Trong thông điệp yêu cầu, có thể có hoặc không các dòng tiêu đề Mỗi dòng gửi một thông tin bổ sung từ client tới server Ví dụ, client có thể yêu cầu dữ liệu phải được gửi theo một định dạng đặc biệt nào đó Mỗi dòng có tên tiêu đề, một dấu hai chấm, một ký tự trống và một giá trị tiêu đề

• Request Body: Đây là thông tin tùy chọn mà máy chủ cần từ Request,

chẳng hạn như biểu mẫu người dùng – đăng nhập tên người dùng / mật khẩu, Response ngắn và tải lên tệp – đang được gửi đến trang web Có thể

có hoặc không Thông thường, nó chứa các bình luận được gửi tới

Trang 10

2.1.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

Các Bản tin đáp ứng thường bao gồm các trường dữ liệu sau:

Một Status-line = Phiên bản HTTP + Mã trạng thái + Trạng

thái

 Có thể có hoặc không có các trường header

 Một dòng trống để đánh dấu sự kết thúc của các trường header

 Tùy chọn một thông điệp

-Mã trạng thái: Thông báo về kết quả khi nhận được yêu cầu và xử lí bên server cho client

-Các kiểu mã trạng thái:

 Informational reponses (1xx): Khi nhận được mã như vậy tức là yêu cầu đã được phía máy chủ tiếp nhận và quá trình xử lý yêu cầu đang được tiếp tục xử lí

VD: 100 (Continue), 101 (Switching protocols), …

 Successful responses (2xx): Khi nhận được những mã như vậy tức là yêu cầu đã được máy chủ tiếp nhận, hiểu và xử lý thành công

VD: 200 (OK) , 201 (CREATED), 202 (Accepted), 203

(Non-authoritative information), 204 (No content), 205 (Reset content),

206 (Partial content)

 Redirection messages (3xx): Mã trạng thái này cho biết máy khách cần có thêm hoạt động để hoàn thành yêu cầu

VD: 301 (Moved permanently), 302 (Moved temporarily), 304 (Not modified), 305 (USE PROXY), …

Trang 11

 Client error responses (4xx): Nó nghĩa là yêu cầu chứa cú pháp không chính xác hoặc không được thực hiện

VD: 400 (Bad request), 401 (Not authorized), 403 (Forbidden), 404 (Not found), …

 Server error responses (5xx): Các máy chủ gặp lỗi và không thể thực hiện yêu cầu

VD: 500 (Internal server error), 501 (Not implemented), 502 (Bad gateway),503 (Service unavailable),

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

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

• Request Method:

VD:POST /html/ HTTP/1.1

HTTP Method (Phương thức HTTP) là thành phần thứ nhất (ví dụ

trên là POST), nó có giá trị như POST, GET, PUT Nó cho biết yêu cầu cần được thực hiện trên server đối với một tài nguyên nào đó, cụ thể như các phương thức:

GET cho biết Request chỉ cần lấy dữ liệu (tài nguyên).

POST được sử dụng để cho biết Request là chuyển dữ liệu lên

server (thương HTTP Message trường hợp này có kèm dữ liệu như HTML Form )

PUT ghi đè (thay thế) tài nguyên nào đó bằng dữ liệu trong

Request

DELETE xóa tài nguyên

Trang 12

Địa chỉ URL - là thành phần thứ hai (ví dụ trên là /html/) Địa chỉ tài

nguyên truy vấn, có thể là URL tương đối - tuyệt đối (kể cả cổng, nếu có cổng thì viết cổng sau ký hiệu :)

HTTP Version Thành phần thứ ba cho biết phiên bản HTTP (thường

là HTTP/1.1)

• Request Header:

Host là header chỉ ra host (domain, IP) và cổng của server mà

Request gửi đến Nếu không chỉ rõ port thì mặc định là 80 với http

và 443 với https Ví dụ:

Host: xuanthulab.net

Accept trong Request cho biết kiểu nội dung trả về mà client có thể

hiểu (các kiểu cách nhau bởi , có độ ưu tiên mặc định 1, nếu muốn xác định độ ưu tiên cho kiểu nào thì cho thêm ;q=value) Ví dụ:

Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8

User-Agent là header của Request cho phép server xác định được

ứng dụng nào, hệ điều hành gì gửi Request Ví dụ:

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0)

Gecko/20100101 Firefox/12.0

Content-Length cho biết độ dài (byte) của phần body (nếu có đính

kèm trong request) Ví dụ:

Content-Length: 12345

Content-Type trong Request, header này cho server biết kiểu dữ

liệu được đính kèm trong phần body Ví dụ:

Content-Type: application/x-www-form-urlencoded

Cookie header này gửi giá trị cookie lấy được từ truy vấn trước để

server phục hồi phiên làm việc Có thể gửi nhiều cookie cách nhau bởi ;

Cookie: name=value; name2=value2; name3=value3

• Request Body: Đây là thông tin tùy chọn mà máy chủ cần từ Request,

chẳng hạn như biểu mẫu người dùng – đăng nhập tên người dùng / mật khẩu, Response ngắn và tải lên tệp – đang được gửi đến trang web Có thể

có hoặc không Thông thường, nó chứa các bình luận được gửi tới

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

Trang 13

Dòng đầu tiên: còn gọi là dòng trạng thái, nó chứa ba mẩu tin gồm

 Phiên bản HTTP, ví dụ HTTP/1.1

 Mã trả về như 200, 404, 301, 302

 Đoạn text ngắn giải thích mã ví dụ OK, Not Found, Moved

Permanently

Đây là một dòng trạng thái: “HTTP/1.1 301 Moved Permanently”

Header của Response: tương tự như header của Request

 Date chứa thông tin ngày tháng thông tin (response) được phát sinh Date: Wed, 21 Oct 2015 07:28:00 GMT

Set-Cookie header này chứa cookie của server gửi cho client Client

lưu lại để gửi lại cho server để phục hồi phiên làm việc

Set-Cookie: CookieID=94583405kfds; Max-Age=3600;

Một số giá trị thiết lập như:

Max-Age=number thời gian hết hạn cookie

HttpOnly không cho JS truy cập Cookie

Có những header giống header của Request như: Content-Type, Content-Length

Body của Response: Chứa dữ liệu của Respone (dữ liệu này có kiểu xác

định ở header Content-Type và độ dài Content-Length), không phải mọi Response đều có body

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 giao thức HTTP

Trang 14

-Hypertext Transfer Protocol hoạt động theo nguyên tắc như sau:

 Client bắt đầu bằng việc gửi yêu cầu một trang web (thông qua việc tạo kết nối TCP tới cổng 80 hoặc một cổng khác trên máy chủ)

 Trình duyệt sẽ gửi các HTTP Request Message về các đối tượng trong trang tới máy chủ

 Máy chủ nhận yêu cầu

 Máy chủ gửi lại HTTP Response Message cho Client kèm theo thông điệp (thông điệp này thường chứa thông tin yêu cầu, thông báo lỗi hoặc thông tin khác)

-HTTP sử dụng TCP làm giao thức lớp giao vận nền (thay vì chạy trên UDP) Đầu tiên máy khách HTTP sẽ khởi tạo kết nối TCP với máy chủ Một khi kết nối được thiết lập thì các tiến trình trình duyệt và máy chủ sẽ truy nhập TCP thông qua giao diện socket của nó Giao diện socket phía máy khách là cánh cửa giữa tiến trình máy khách và kết nối TCP, ở bên máy chủ là cánh cửa giữa tiến trình máy chủ và kết nối TCP Máy khách gửi các bản tin yêu cầu HTTP vào giao diện socket và nhận bản tin đáp ứng HTTP cũng từ giao diện socket của nó Tương tự như vậy, máy chủ HTTP nhận bản tin yêu cầu từ socket và gửi bản tin đáp ứng vào giao diện socket của

nó Một khi máy khách gửi bản tin vào giao diện socket của nó thì bản tin

đó đã ra khỏi sự kiểm soát của máy khách và đi vào phạm vi kiểm soát

Ngày đăng: 05/11/2024, 10:12

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w