Hoạt động của HTTP và FTPBáo cáo bài tập lớn môn Mạng máy tính Viện điện tử viễn thông Đại học Bách Khoa Hà Nội
Trang 11. Giới thiệu hệ thống Web
2. Mô hình hoạt động: Web browser/Web server
3. Hyper Text Transfer Protocol (HTTP)
4. FTP
Trang 2 Giới thiệu Internet
Mô hình client-server
Mô hình hoạt động của hệ thống World Wide
Web (WWW)
Giao thức HTTP
Giới thiệu Internet
Mạng máy tính (computer networks) làsự kết nối
những máy tính hoạt động độc lập lại với nhau
Lợi ích của mạng máy tính:
Trang 3Giới thiệu Internet
Mạng LAN (Local Area Network)
Mạng WAN (Wide Area Network)
lý.
Mạng Internet là mạng máy tính toàn cầu, kết nối các
mạng của các tổ chức, cá nhân trên thế giới
FTP,…
Mô hình client-server
Trang 4Quan hệ giữa client và server
Giao thức: các qui tắc được sử dụng để thông
tin giữa 2 đối tượng tham gia truyền thông
TCP: có kết nối, tin cậy nhưng chậm
UDP: không kết nối, không tin cậy nhưng
nhanh
Trang 6Một số ứng dụng client-server
Ứng dụng Web
Trang 7World Wide Web (WWW)
Wide Web (WWW)
Gồm 2 loại phần tử :
Web server: chương trình quản lý một cây thứbậc
c c trang Web vàphục vụ yêu cầu truy xuất chúng
từ c c client từ xa
Web Browser: chương trình giao tiếp với người
dùng, nhận yêu cầu từ user rồi truy xuất trang Web
ở server tương ứng đểphân giải và hiển thị nội
dung lên màn hình
Trang 8 Trang Web là đơn vị gởi nhận giữa Web server
và Web client, nó là 1 file văn bản được viết
bằng ngôn ngữ HTML
Web browser và web server sẽ tạo 1 cầu nối
TCP để trao đổi thông tin, server lắng nghe ở
port 80 (port mặc định) và dùng giao thức
HTTP (HyperText Transfer Protocol)
Truy cập Web
Địa chỉ URL (Uniform Resource Locator) bao
gồm 3 phần: protocol, host và path
Ví dụ:
http://www.dit.hcmut.edu.vn/index.htm
path: còn được gọi là URI
Trang 9 HTTP thông qua TCP/IP sockets
Web browser = Http client
Web server = Http server
Đáp ứng và yêu cầu
HTTP cócấu trúc đơn:
- Khách gửi một yêu cầu
- Máy chủ gửi lại một trảlời
HTTP cóthểthực hiện trao đổi đa đáp ứng – trả lời
trên một kết nối TCP đơn
HTTP cho phép giao tiếp giữa browser vàweb server
qua một loạt các kết nối rời rạc để lấy text trên web
page vàthểhiện chúng, mỗi một lần request được
thực hiện thìmột bản ghi cho lần request đó được ghi
vào một file log Các request về web được http ghi
vào file access_log
Trang 10Phiên bản HTTP
Phiên bản đầu tiên có tên “HTTP version 0.9”
nó đã được sử dụng trong rất nhiều năm
Sau đó là đến:
HTTP 1.0: RFC 1945
HTTP 1.1: RFC 2068
RFC
RFC là viết tắt của Request For Comment, là tập hợp
những tài liệu về kiến nghị, đềxuất vànhững lời bình
luận liên quan trực tiếp hoặc gián tiếp đến công nghệ,
nghi thức mạng INTERNET
Các tài liệu RFC đựợc chỉnh sửa, thay đổi đến khi tất
cảcác kỹ sư thành viên của IETF(Internet
Engineering Task Force) đồng ý vàduyệt, sau đó
những tài liệu này được xuất bản và được công nhận
là 1 chuẩn, nghi thức cho Internet
Trang 11Cấu trúc của một giao dịch HTTP 1.0
Bước 1: HTTP client mở kết nối đến HTTP
server
Bước 2: HTTP client gửi request message đến
HTTP server
Bước 3: HTTP server trả response mesage về
cho HTTP client, chứa resource mà HTTP
client yêu cầu
Bước 4: HTTP server đóng kết nối
Cấu trúc của một giao dịch HTTP 1.0
Format của request message và response
message là như nhau, bao gồm:
Trang 12Cấu trúc của một giao dịch HTTP 1.0
Initial line
Initial Request line: gồm 3 phần làmethod name,
local path, và HTTP version
GET/path/to/file/index.htmlHTTP/1.0
Cấu trúc của một giao dịch HTTP 1.0
Initial line
Initial Response line: gồm 3 phần làHTTP
version, response status code, vàEnglish reason
phrase
HTTP/1.0404Not Found
Trang 13Cấu trúc của một giao dịch HTTP 1.0
Header lines: cung cấp thông tin về request or
response or message body, bao gồm 2 phần là
header name và value
From: someuser@jmarshall.com
Last-Modified: Fri, 31 Dec 1999 23:59:59 GMT
Cấu trúc của một giao dịch HTTP 1.0
Message Body: nơi chứa data cần truyền trong
message (chứa resource đối với response
message, và chứa data đối với request
message)
Thường sẽ có 2 header Content-Type và
Content-Length nếu có body message
Trang 14Ví dụ
Cần truy cập thông tin trong trang web
http://www.somehost.com/path/file.html
Bước 1: Client mở một socket kết nối đến
server host www.somehost.com ở port 80
Bước 2: Client gửi request message đến server
GET /path/file.html HTTP/1.0
From: someuser@jmarshall.com
User-Agent: HTTPTool/1.0
[blank line here]
Bước 3: Server gửi response message đến
Trang 15Hoạt động
Khi gõ địa chỉcủa 1 web-site nào đó vào hộp địa chỉ
trong trình duyệt Web và ấn "Enter", việc đầu tiên
trình duyệt sẽ làm là t m ởmáy chủ DNS (Domain
Name System ) xem địa chỉIP của máy chủchứa
trang đó
Sau khi đã tìm thấy địa chỉIP, trình duyệt web sẽ tm
cách đểkết nối vào cổng (port) mà máy chủ đó dùng
cho http(cổng mặc định là 80) vàlấy thông tin cần
hiển thị(ở đây làtrang web)
Các phương thức yêu cầu
Trang 16Các phương thức yêu cầu
Get: Đây làlệnh trình duyệt dùng để lấy 1 trang web
nào đómàbạn đang yêu cầu Vídụget url HTTP/1.0
Với url là địa chỉtrang web còn HTTP/1.x là version
của dịch vụHTTP màtrình duyệt của bạn dùng
Post: Đây làlệnh trình duyệt dùng để gửi 1 file lên
trên server
Các phương thức yêu cầu
Head: giống phương thức GET nhưng chỉyêu cầu
server trảvềc c Header line (không trả Resource)
Put: upload file lên máy chủ ở thư mục hiện thời
Trace: dội yêu cầu trởlại, vìthế một máy khách
có thểbiết được trạm trung gian thêm hoặc thay
đổi yêu cầu
Options: trảlại giao thức HTTP mà server cung
c p Nó có thể được sử dụng đểkiểm tra chức
năng của 1 web server
Trang 17Mỗi request bắt đầu với một Request-Line
message body.
Phần header có thể mô tả việc truyền dữ liệu, xác định các
yêu cầu hay phần message body kèm theo.
5.0)
Trang 18phiên bản HTTP, mỗi mục được phân tách bởi một hay nhiều
khoảng trống.
HTTP Đáp ứng
HTTP Response khá giống với HTTP Request
Dấu hiệu khác biệt duy nhất là response bắt
đầu với một dòng trạng thái status so với
Request-Line Status-Line, cũng giống như
Request-Line, chứa ba mục ngăn cách bởi các
khoảng trống.
Trang 19thể mô tả quá trình truyền dữ liệu, xác định response,
hoặc phần body kèm theo
server hỗ trợ.
Code
HTTP/1.1 200 OK
Date: Sun, 08 Oct 2000 18:46:12
GMT Server: Apache/1.3.6 (Unix)
Keep-Alive: timeout=5, max=120
Connection: Keep-Alive
Content-Type: text/html
<html>
Trang 20 HTTP Status-Line bắt đầu với chỉbáo HTTP, mã
trạng thái, và một đoạn text mô tả response
Hai mục còn lại trong Status-Line là Status-Code và
Reason-Phrase Status-Code là một bộ ba kítự chỉ
báo kết quảcủa request Status-Code phổbiến nhất là
200 Giá trịnày thông báo yêu cầu của client thành
Trang 21Khái niệm FTP
đơn giản vàthông dụng để trao đổi tập tin trên
Internet
FTP uses the TCP protocol and therefore operates
through a reliable, connection-oriented session
between the client and server computers
Một địa chỉFTP giống như http hoặc website
Địa chỉWebsite :http://www.ftpplanet.com/
Địa chỉFTP site :ftp://ftp.ftpplanet.com/
Trang 22Đặc điểm của FTP
FTP được xây dựng theo mô hình khách - chủ.
Hệ thống chỉ hoạt động được khi có cả FTP
server và FTP client
Một máy tính với một địa chỉ FTP nhận một
kết nối FTP riêng biệt từ FTP server hoặc FTP
site
FTP server có vai trò tương tự Web server
Đặc điểm của FTP
Authentication Control: FTP yêu cầu các máy
khách khi truy nhập phải thoả mãn login name
và password trước khi truyền tập tin Server sẽ từ
chối cho truy nhập nếu login name hoặc password
không hợp lệ
FTP server cho phép nhiều client truy nhập cùng 1
lúc
Client sử dụng TCP để kết nối vào server
FTP sử dụng 2 kết nối riêng biệt trong quá trình
truyền tập tin giữa server và client:control connection
Trang 23Đặc điểm của FTP
Control connection:mang các lệnh để chỉ dẫn
cho server biết file nào sẽ được truyền dẫn.
Data transfer connection:sử dụng giao thức
TCP để truyền tập tin.
Cả server và client đều tạo ra 2 process riêng
rẽ để điều khiển quá trình truyền dữ liệu.
Trang 24Hoạt động của FTP
một liên kết với máy chủ Một khi hai máy đã liên kết với
Internet
Hoạt động của FTP
Một số máy chủ FTP sử dụng cổng mạng riêng
thay cho cổng chuẩn 21 vì l do bảo mật.Nếu
như vậy bạn sẽ phải xác lập cổng truy cập vào
đường dẫn.
Ví dụ:ftp://lenneth@ftp.xtremevn.com:8008
(Trong đó 8008 là số cổng và có thể thay đổi
tùy theo cấu hình máy chủ)
Trang 25SCTP, TCP, UDP, DCCP, IL, RTP, RUDP, …
IPv4, IPv6, … Ethernet, Wi-Fi, Token ring, MPLS, PPP, …
Mục đích của giao thức FTP
1. Khuyến khích việc dùng chung tập tin (như chương
trình ứng dụng vi tính hoặc dữliệu)
2. Khuyến khích việc sử dụng máy tính ở xa một cách
gián tiếp / ngấm ngầm (implicit)
3. Che đậy sựkhác biệt vềhệthống lưu trữtập tin
giữa các máy chủ, giúp cho người dùng không cần
phải quan tâm đến những sựkhác biệt riêng tư của
chúng
4. Truyền tải dữliệu một cách đáng tin cậy vàcó hiệu
quả cao
Trang 26Nhược điểm của giao thức FTP
1. Cần phải có nhiều kết nối TCP/IP
2. FTP là một giao thức cót nh trìtrệ rất cao
3. Phần nhận không có phương pháp để kiểm chứng
t nh toàn vẹn của dữliệu được truyền sang
4. Mật khẩuvànội dung của tập tin được truyền qua
đường dây ởthểdạng văn bản thường(clear text),
vàvìvậy chúng có thể bịchặn vànội dung bịtiết lộ
cho những kẻnghe trộm Hiện nay, người ta có
những cải tiến đểnétránh được nhược điểm này
Trang 27Bảo mật khi dùng FTP
FTP làmột phương pháp truyền tập tin có truyền
thống phi bảo an
Phần lớn các cài đặt của mạng lưới truyền thông, tên
người dùng, mật khẩu, dòng lệnh FTP vàtập tin được
truyền tải, đều cóthểbị người khác trên cùng một
mạng lưới, "ngửi" hoặc quan sát, dùng phần mềm
phân tích giao thức (protocol analyzer)
Giải pháp:dùng SFTP(Secure Shell File Transfer
Protocol-tạm dịch là "giao thức truyền tập tin dùng
trình bao bảo mật"), một giao thức dựa trên nền của
SSH, hoặc trên FTPS(FTP over SSL)
Trang 28 Chế độ ASCII:mỗi một chữ, mỗi con số, và mỗi ký
tự đều được gửi trong dạng mã ASCII.Máy nhận tin
lưu trữ chúng trong một tập tin văn bản thường, dưới
dạng thức thích hợp
Chế độ NhịPhân:Máy gửi tập tin gửi từng bit một
sang cho máy nhận Máy nhận lưu trữ dòng bit, y như
nó đã được gửi sang
Tốc độ truyền tải tập tin dùng mã ASCII nhanh hơn
một chút, vìbit ởhàng cao nhất của mỗi byte của tập
tin bịbỏ
Phần lớn các trình khách FTP dùng chế độ ASCII
FTP và các trình duyệt
Đa số các trình duyệt web( web browser ) gần
đây và trình quản lý tập tin( file manager ) có
thể kết nối vào các máy chủ FTP
Điều này cho phép người dùng thao tác các tập
tin từ xa, thông qua kết nối FTP, dùng một
giao diện quen thuộc, tương tự như giao diện
trong máy của mình
Đa số các trình duyệt web đòi hỏi truyền tải
FTP ở chế độ bị động
Trang 29FTP trên nền SSH
"FTP trên nền của SSH" ám chỉ đến một kỹ thuật
"đào hầm" cho một phiên giao dịch dùng giao thức
FTP bình thường, thông qua một kết nối dùng giao
thức SSH
Nếu trình khách FTP được cài đặt dùng chế độbị
động, vàkết nối với một máy chủdùng giao diện
SOCKS, làgiao diện mànhiều trình khách SSH có
thểdùng để tiến cửviệc đi ngầm, việc dùng các
đường kết nối của FTP, trên các kết nối của SSH, là
TFTP( Trivial File Transfer Protocol - Giao
Trang 30Khác biệt giữa HTTP và FTP
tải nội dung của một trang Web vào một trình duyệt Web để
xem.
việc.
nghĩa là người dùng đang kết nối tới một Web server chứ
Tài liệu tham khảo
Các bài viết trên các trang web