Tải bản đầy đủ (.doc) (30 trang)

ĐỀ TÀI NGHIÊN CỨU VÀ XÂY DỰNG CHƯƠNG TRÌNH DUYỆT WEB BẰNG GIAO THỨC HTTP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2 MB, 30 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN

----------

ĐỒ ÁN MÔN CƠ SỞ 4

ĐỀ TÀI

NGHIÊN CỨU VÀ XÂY DỰNG
CHƯƠNG TRÌNH DUYỆT WEB BẰNG
GIAO THỨC HTTP
Sinh Viên Thực Hiện

:Văn Viết Hiếu 18IT3
Lê Nguyễn Phú Hữu 18IT3

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

:TS. Đặng Quang Hiển

Đà Nẵng, tháng 12 năm 2020


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

NHẬN XÉT
(Của giáo viên hướng dẫn)


……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……

Đà nẵng, ngày … tháng … năm …
Giảng viên hướng dẫn


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

LỜI CẢM ƠN
Tất cả chúng ta đều đã được tiếp cận với các ứng dụng để lướt web từ

rất lâu, sớm nhất là có yahoo, edgle, google chrome, firefox hay là ở Việt
Nam mình có cốc cốc và một vài browser khác.
Em muốn thử sức mình ở lĩnh vực lập trình mạng và tạo ra một browser
của riêng bản thân. Tuy khá đơn giản và chưa có gì thực sự nổi bật để so
sánh với các browser khác nhưng mà đây là project đầu tiên của bản thân
nên em vẫn chưa làm được thật sự tốt, mong thầy góp ý và đưa ra đánh giá
để giúp em có thể hồn thiện project này.
Em có tham khảo 1 vài bài trên youtube và 1 vài trang mạng về lập
trình. Nhờ đó em đã tạo nên browser với giao diện đơn giản và có qua tham
khảo giao diện của cốc cốc.
Sau khi qua tìm hiểu và học hỏi em đã hồn thiện được browser, mặc dù
khơng được đẹp hay đầy đủ chức năng như các browser khác nhưng vẫn
đáp ứng đầy đủ các chức năng mà các browser các hiện có là tìm kiếm và
chạy được các url.
Vì đây là đề tài đồ án mơn học nên nhóm em sẽ cố gắng phát triển tốt
nhất trong khả năng của bản thân. Dự kiến chương trình của sẽ hồn thành
trước tháng 12-2020 và sẽ cố gắng phát triển tiếp mong sau này có thể đi
vào hoạt động chính thức.
Em xin được cảm ơn thầy Đặng Quang Hiển đã hướng dẫn và giúp đỡ em
trong bộ mơn lập trình mạng trong suốt thời gian vừa qua.


MỤC LỤC
Trang
Chương 1 CƠ SỞ LÝ THUYẾT.......................................................................7
1.1 Tổng quan về lập trình mạng.................................................................7
1.2 Một số các mơ hình mạng.......................................................................8
1.3 Ngơn ngữ lập trình mạng.......................................................................8
1.3.1 Giới thiệu chung................................................................................8
1.3.2 Các giao thức truyền thông mạng......................................................9

1.3.3 Các cấu trúc trong C#......................................................................10
1.3.4 Đặc điểm của ngơn ngữ...................................................................12
Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG TRÌNH DUYỆT WEB....11
2.1 Giới thiệu bài tốn.................................................................................11
2.1.1 Đề tài 11
2.1.2 Yêu cầu............................................................................................11
2.1.3 Mục tiêu...........................................................................................11
2.1.4 Phương pháp....................................................................................11
2.2 Giao thức HTTP....................................................................................12
2.2.1 HTTP là gì ?....................................................................................12
2.2.2 Sơ đồ hoạt động của HTTP..............................................................12
2.2.3 Uniform Resource Locator (URL)...................................................12
2.2.4 Các thành phần chính của HTTP.....................................................13
a.
HTTP - Requests...................................................................................13
b
HTTP - Responses.................................................................................13
2.2.5 Phương thức Get và Post................................................................14
2.3 Phân tích và thiết kế hệ thống..............................................................16
2.4 Biểu đồ use - case...................................................................................16
2.5 Biểu đồ tuần tự......................................................................................17
2.6 Biểu đồ trạng thái..................................................................................17
2.7 Biểu đồ hoạt động..................................................................................18
Chương 3 XÂY DỰNG TRÌNH DUYỆT WEB..............................................19
3.1 Thiết kế giao diện..................................................................................19
3.2 Chạy demo browser..............................................................................24
3.3 Kết quả đạt được...................................................................................26
3.4 Phương hướng phát triển ứng dụng....................................................27
3.5 Tài liệu tham khảo..................................................................................27



Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

MỤC LỤC HÌNH ẢNH
Hình 1: Một số thiết bị phổ biến trong lập trình mạng...........................................................5
Hình 2: Sơ đồ hoạt động của giao thức HTTP.....................................................................12
Hình 3: Sơ đồ Use-case........................................................................................................16
Hình 4: Biểu đồ tuần tự........................................................................................................17
Hình 5: Biểu đồ trạng thái....................................................................................................17
Hình 6: Biểu đồ hoạt động...................................................................................................18
Hình 7: Thiết kế các chức năng cơ bản của trình duyệt Web................................................19
Hình 8: Các chức năng của trình duyệt Web........................................................................20
Hình 9: Chức năng tìm kiếm của trình duyệt Web................................................................20
Hình 10: Chức năng thêm tab của trình duyệt Web..............................................................21
Hình 11: Chức năng xóa tab hiện tại....................................................................................22
Hình 12: Chức năng tạo lịch sử của trình duyệt Web...........................................................22
Hình 13: Đoạn code xóa tất cả các tab................................................................................23
Hình 14: Kiểu tra ứng dụng.................................................................................................23
Hình 15: Giao diện sau khi sử dụng trình duyệt Web...........................................................24
Hình 16: Nhập từ khóa trên google......................................................................................24
Hình 17: Giao diện sau khi duyệt Web.................................................................................25
Hình 18: Tra cứu lịch sử duyệt Web.....................................................................................25
Hình 19: Danh sách lịch sử đã duyệt Web............................................................................26

2


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP


GVHD: Đặng Quang Hiển

TỔNG QUAN
Trình duyệt web (web browser) là một phần mềm ứng dụng cho phép người sử dụng
xem và tương tác với các văn bản, hình ảnh, đoạn phim, nhạc, trị chơi và các thơng
tin khác ở trên một trang web của một địa chỉ web trên mạng tồn cầu hoặc mạng nội
bộ.
Trình dụt web cho phép người sử dụng truy cập các thông tin trên các trang web
một cách nhanh chóng và dễ dàng, nó đọc định dạng HTML, CSS, XML,… để hiển
thị, do vậy một trang web có thể hiển thị khác nhau trên các trình duyệt khác nhau.
Một số trình duyệt web phổ biến hiện nay bao gồm Internet Explorer(Edge), Mozilla
Firefox, Safari, Google Chrome, Opera,…
Trình duyệt web sử dụng địa chỉ URL (Uniform Resource Locator) được dùng để
tham chiếu tới tài nguyên trên Internet. URL mang lại khả năng siêu liên kết cho các
trang mạng, các tài nguyên khác nhau.
Web browser sử dụng giao thức HTTP
HTTP (Hypertext Transfer Protocol), là giao thức thuộc lớp ứng dụng trong mơ hình
OSI. Hoạt động thơng thường ở cổng (port) 80 và là giao thức hướng kết nối.
Các phương thức hoạt động của HTTP:
 GET: Phương thức lấy một đối tượng hoặc tài nguyên nào đó trên máy chủ
(server).
 POST: Phương thức mà máy trạm (Client) sử dụng để gửi thông tin đến các
Server.
 PUT: Phương thức dùng để máy trạm (Client) đẩy (upload) dữ liệu lên Server.
 DELETE: Phương thức giúp Client xoá các đối tượng, tài nguyên từ các máy
Webserver.
 HEAD: Phương thức xác minh rằng một đối tượng có tồn tại hay khơng.
 TRACE: Phương thức được sử dụng để gọi từ xa một lớp ứng dụng trở lại.


3


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

CẤU TRÚC CỦA BÁO CÁO
Chương 1: CƠ SỞ LÍ THUYẾT
 Tổng quan về lập trình mạng.
 Phương pháp nguyên cứu
 Công nghệ và ngôn ngữ sử dụng

Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
TRÌNH DUYỆT WEB
 Đưa ra đặc tả yêu cầu của ứng dụng
 Phân tích và thiết kế hệ thống

Chương 3: XÂY DỰNG TRÌNH DUYỆT WEB
 Thiết kế giao diện

 Chạy demo chương trình
 Tổng kết những gì đề án làm được và chưa làm được
 Đưa ra hướng cho đề tài

4


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP


Chương 1

GVHD: Đặng Quang Hiển

CƠ SỞ LÝ THUYẾT

1.1 Tổng quan về lập trình mạng

Hình 1: Một số thiết bị phổ biến trong lập trình mạng

Ngày này khi nói đến phát triển các ứng dụng phần mềm, đa số là người ta muốn nói
đến chương trình có khả năng làm việc trong mơi trường mạng tích hợp nói chung và
mạng máy tính nói riêng. Từ các chương trình kế tốn doanh nghiệp, quản lý, trò
chơi, điều khiển... đều là các chương trình ứng dụng mạng.
Vấn đề lập trình mạng liên quan đế nhiều lĩnh vực kiến thức khác nhau. Từ kiến thức
sử dụng ngơn ngữ lập trình, phân tích thiết kế hệ thống, kiến thức hệ thống mạng, mơ
hình xây dựng chương trình ứng dụng mạng, kiến thức về cơ sở dữ liệu... cho đến
kiến thức truyền thông, các kiến thức các lĩnh vực liên quan khác như mạng điện
thoại di động, PSTN, hệ thống GPS, các mạng như BlueTooth, WUSB, mạng
sensor.... Nhưng có thể nói vấn đề lập trình mạng có 3 vấn đề chính cốt lõi tích hợp
trong lập trình ứng dụng mạng và được thể hiện như hình
Hay nói cách khác, vấn đề lập trình mạng có thể được định nghĩa với công thức sau:
LTM = KTM + MH + NN
5


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP


LTM: Lập trình mạng




KTM: Kiến thức mạng truyền thơng (mạng máy tính, PSTN,...)



MH: Mơ hình lập trình mạng



NN: Ngơn ngữ lập trình mạng

1.2
-

GVHD: Đặng Quang Hiển

Một số các mơ hình mạng

Mơ hình Trạm – Chủ (Client-Server):

 Mơ hình phần mềm Client-Server: Mơ hình này nhằm khắc phục tình trạng q
tải trên mạng, và mỗi phần mềm xây dựng theo mô hình Client/Server sẽ được
chia làm hai phần đó là phần hoạt động trên trạm làm việc gọi là phần phía Client
và phần hoạt động trên máy phục vụ gọi là phần phía Server.
 Mơ hình Client-Server: Các máy trạm được nối với các máy chủ, nhận quyền
truy nhập mạng và tài ngun mạng từ các máy chủ.
-


Mơ hình mạng ngang hàng (Peer-to-Peer P2P): Hai hay nhiều máy tính chia se
tập tin và truy cập các thiết bị như máy in mà không cần đến máy chủ hay phần
mềm máy chủ.

1.3 Ngơn ngữ lập trình mạng
1.3.1 Giới thiệu chung
Nói chung tất cả các ngơn ngữ lập trình đều có thể sử dụng để lập trình mạng.
Nhưng mỗi ngơn ngữ có những ưu, nhược điểm khác nhau và được hỗ trợ thư
viện API ở các mức độ khác nhau. Tuỳ từng ứng dụng mạng cụ thể, hệ điều
hành mạng cụ thể và thói quen lập trình mà người lập trình có thể chọn ngôn
ngữ phù hợp để phát triển các ứng dụng mạng. Các ngơn ngữ lập trình phổ biến
hiện nay gồm những ngôn ngữ sau:
 Hợp ngữ( Assembly Language)
 C/C++
 VC++, VB, Delphi
 Java
 .NET
6


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

 ASP
Đối với phát triển ứng dụng mạng hiện nay có 2 ngơn ngữ lập trình được sử
dụng phổ biến nhất, đó là .NET và C#. Người lập trình có thể sử dụng thành
thạo một trong 2 dịng ngơn ngữ đó để phát triển ứng dụng mạng(ở với Việt
Nam nói chung nên nắm tốt cả 2 cơng nghệ này). Trong giáo trình này chúng
tơi sẽ sử dụng ngơn ngữ lập trình JAVA và các cơng nghệ liên quan đến nó để

phát triển ứng dụng mạng. Sau khi nắm chắc kỹ thuật, tư tưởng lập trình mạng
thơng qua ngơn ngữ Java, sinh viên có thể sử dụng bất kể ngơn ngữ lập trình
nào phù hợp như VB.NET, C#, ...

1.3.2 Các giao thức truyền thông mạng
Giao thức mạng là một tập hợp các quy tắc mà mạng phải tuân theo. Giao thức
mạng là những tiêu chuẩn và chính sách chính thức được tạo thành từ các quy
tắc, quy trình và định dạng xác định giao tiếp giữa hai hoặc nhiều thiết bị qua
mạng. Các giao thức mạng 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, để quá trình giao tiếp mạng hoặc dữ liệu diễn ra
kịp thời, được bảo mật và quản lý. Giao thức mạng xác định các quy tắc và quy
ước giao tiếp.
Một số các giao thức hiện nay:
 Internet Protocol Suite
 Protocol stack
 Tranmission Control Protocol (TCP)
 User Datagram Protocol (UDP)
 Internet Protocol (IP)
 Hypertext Transfer Protocol (HTTP)
 File Transfer Protocol (FTP)
 Secured Shell (SSH)
 Simple Mail Transfer Protocol (SMTP)
 Post Office Protocol (POP)
7


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển


1.3.3 Các cấu trúc trong C#
1.3.3.1 Định nghĩa Lớp trong C#
Class trong C# chính là cách thể hiện khái niệm về lớp trong lập trình hướng đối
tượng.
Một Class trong C# có các thành phần như:


Thuộc tính: là các thành phần dữ liệu hay còn gọi là các biến.



Phương thức: là các hàm thành phần thể hiện các hành vi của một đối tượng
thuộc lớp.



Phương thức khởi tạo.



Phương thức huỷ bỏ.

Khai báo:
Cú pháp
class <tên lớp>
{
<Phạm vi truy cập> <Các thành phần của lớp>;
}
Trong đó:



<tên lớp> là tên do người dùng đặt và tuân theo quy tắc đặt tên đã trình bày
trong bài Biến trong C#.



<Phạm vi truy cập> Bao gồm các từ khóa như public, protected, private,
static,..



<Các thành phần của lớp> bao gồm các biến, phương thức của lớp.
o

Các biến được khai báo như khai báo biến đã học trong bài Biến trong
C#.

o

Các phương thức (hàm) được khai báo như khai báo hàm đã học trong
bài Hàm trong C#

8


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

1.3.3.2 Cấu tử, hủy tử

-

Cấu tử là 1 phương thức đặc biệt của lớp dùng để khởi tạo giá trị ban đầu cho các
thành phần của các đối tượng của lớp. Nó có đặc điểm







Ln tồn tại trong lớp
Có tên trùng với tên lớp
Khơng có kiểu trả về
Có thể có hoặc khơng có tham số
Cấu tử tự động được gọi khi 1 đối tượng được khai báo hoặc được cấp phát bộ
nhớ

-

Hủy tử: là 1 phương thức đặc biệt của lớp dùng để “dọn dẹp” chương trình: xóa
vùng nhớ đệm, thu hồi tài nguyên đã cấp phát cho đối tượng. Hủy tử có đặc điểm






Có tên trùng với tên lớp, có dấu ~ ở phía trước
Khơng có kiểu trả về

Khơng có tham số
Hủy tử tự động được gọi khi 1 đối tượng kết thức vòng đời

1.3.3.3 Static
- Từ khóa Static được dùng để khai báo biến static hoặc static method hoặc static
class.
- Biến Static có vùng nhớ riêng khơng bị thay đổi, nó khơng thuộc về 1 đối
tượng nào hết mà thuộc về class chứa nó.
- Static method là hàm trong class mà khi gọi nó ta khơng cần phải khai báo 1
kiểu class đó mà có thể gọi ngay, nó tương đường với 1 hàm có thể gọi mà
không cần đối tượng nào hết.
Class static là class chỉ có thể có static method. Khi khai báo static cho class thì yêu
cầu tất cả các biến, hàm trong class cũng phải là static, thường dùng cho việc lưu
thơng tin chung cho tồn bộ ứng dụng.

1.3.4 Đặc điểm của ngơn ngữ
C#, theo một hướng nào đó, là ngơn ngữ lập trình phản ánh trực tiếp nhất đến .NET
Framework mà tất cả các chương trình.NET chạy, và nó phụ thuộc mạnh mẽ vào
9


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

framework này. Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy bỏ bởi
trình dọn rác Garbage-Collector (GC), và nhiều kiểu trừu tượng khác chẳng hạn như
class, delegate, interface, exception... phản ánh rõ ràng những đặc trưng của.NET
runtime.
So sánh với C và C++, ngôn ngữ này bị giới hạn và được nâng cao ở một vài đặc

điểm nào đó, nhưng khơng bao gồm các giới hạn sau đây:


Các con trỏ chỉ có thể được sử dụng trong chế độ khơng an tồn. Hầu hết
các đối tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra
tràn bộ đệm. Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị; còn
những đối tượng thuộc bộ gom rác (garbage-collector) thì chỉ được gọi
bằng cách tham chiếu.



Các đối tượng khơng thể được giải phóng tường minh



Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng
(abstract interfaces). Chức năng này làm đơn giản hóa sự thực thi của thời
gian thực thi



C# thì an-tồn-kiểu (typesafe) hơn C++



Cú pháp khai báo mảng khác nhau("int[] a = new int[5]" thay vì "int a[5]")



Kiểu thứ tự được thay thế bằng tên miền khơng gian (namespace).




C# khơng có tiêu bản.



Có thêm Properties, các phương pháp có thể gọi các Properties để truy cập
dữ liệu.



Có reflection

10


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

Chương 2 PHÂN TÍCH THIẾT KẾ HỆ
THỐNG TRÌNH DUYỆT WEB
1.4

Giới thiệu bài tốn

1.4.1 Đề tài
Nghiên cứu và xây dựng trình duyệt web bằng C#


1.4.2 Yêu cầu
Browser cần phải có:
-

Có thể tìm kiếm được với HYPERLINK.
Nút search.
Nút trở về và tiến lên
Nút refresh
Lịch sử tìm kiếm
Khung hiển thị sau khi tìm kiếm thành cơng.

1.4.3 Mục tiêu
 Xây dựng ứng dụng hồn chỉnh
 Giao diện đẹp, dễ nhìn, thân thiện người dùng
 Ứng dụng chạy ổn định trên môi trường Solaris, Linux, Windows
95/98/NT/2000/Xp.
 Hiển thị chính xác khi người dùng nhập url
 Kết quả trả về nhanh, không tốn nhiều thời gian

1.4.4 Phương pháp
 Sử dụng ngôn ngữ lập trình C# và thư viện JXBrowser của C# để lập trình
ứng dụng
 Sử dụng các kỹ thuật lập trình hướng đối tượng
 Sử dụng C# kết hợp với IDE Visual Studio, C# được hỗ trợ gợi ý code bởi
Visual Studio IntelliCode sử dụng trí tuệ nhân tạo giúp cho việc code dễ
dàng hơn.

11



Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

1.5 Giao thức HTTP
1.5.1 HTTP là gì ?
HTTP (HyperText Transfer Protocol - Giao thức truyền tải siêu văn bản) là một
trong các giao thức chuẩn về mạng Internet, được dùng để liên hệ thông tin giữa Máy
cung cấp dịch vụ (Web server) và Máy sử dụng dịch vụ (Web client), là giao thức
Client/Server dùng cho World Wide Web – WWW
HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng
cho Internet).

1.5.2 Sơ đồ hoạt động của HTTP

Hình 2: Sơ đồ hoạt động của giao thức HTTP

HTTP hoạt động dựa trên mô hình Client – Server. Trong mơ hình này, các máy tính
của người dùng sẽ đóng vai trị làm máy khách (Client). Sau một thao tác nào đó của
người dùng, các máy khách sẽ gửi yêu cầu đến máy chủ (Server) và chờ đợi câu trả lời
từ những máy chủ này.
HTTP là một stateless protocol. Hay nói cách khác, request hiện tại khơng biết
những gì đã hồn thành trong request trước đó.
HTTP cho phép tạo các yêu cầu gửi và nhận các kiểu dữ liệu, do đó cho phép xây
dựng hệ thống độc lập với dữ liệu được truyển giao

1.5.3 Uniform Resource Locator (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

12


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

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

1.5.4 Các thành phần chính của HTTP

1.6

HTTP - Requests

HTTP Request Method: Là phương thức để chỉ ra hành động mong muốn được thực hiện
trên tài nguyên đã xác định.
Cấu trúc của một HTTP Request:

 Một Request-line = Phương thức + URI–Request + Phiên bản HTTP . Giao thức
HTTP định nghĩa một tập các giao thức GET, POST, HEAD, PUT ... Client có thể sử
dụng một trong các phương thức đó để gửi request lên server.


 Có thể có hoặc khơng 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.
Request Header Fields: Các trường header cho phép client truyền thơng tin bổ sung
về u cầu, và về chính client, đến server. Một số trường: Accept-Charset, AcceptEncoding, Accept-Language, Authorization, Expect, From, Host, …

 Tùy chọn một thông điệp
Khi request đến server, server thực hiện một trong 3 hành động sau:
Server phân tích request nhận được, maps yêu cầu với tập tin trong tập tài liệu của server, và
trả lại tập tin yêu cầu cho client.
Server phân tích request nhận được, maps yêu cầu vào một chương trình trên server, thực thi
chương trình và trả lại kết quả của chương trình đó.
Request từ client khơng thể đáp ứng, server trả lại thông báo lỗi.

1.7

HTTP - Responses

Cấu trúc của một HTTP response:
13


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

 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:
1xx: Thông tin (100 -> 101)
 VD: 100 (Continue), ….
2xx: Thành công (200 -> 206)
 VD: 200 (OK) , 201 (CREATED), …
3xx: Sự điều hướng lại (300 -> 307)
 VD: 305 (USE PROXY), …
4xx: Lỗi phía Client (400 -> 417)
 VD: 403 (FORBIDDEN), 404 (NOT FOUND), …
5xx: Lỗi phía Server (500 -> 505)
 VD: 500 (INTERNAL SERVER ERROR)

1.7.1 Phương thức Get và

Post

1. Phương thức Get
 Phương thức GET rất dễ nhận thấy đó là trên URL sẽ kèm theo dữ liệu mà
chúng ta muốn gửi.
 Client gửi lên Phương thức GET là phương thức gửi dữ liệu thông qua đường
dẫn URL nằm trên thanh địa chỉ của Browser. Server sẽ nhận đường dẫn đó và
phân tích trả về kết quả cho bạn. Server sẽ phân tích tất cả những thơng tin đằng
sau dấu hỏi (?) chính là phần dữ liệu mà Client gửi lên.
14


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển


 Ví dụ: Với URL viblo.asia?id=10 thì Server sẽ nhận được giá trị id = 10
 Để truyền nhiều dữ liệu lên Server ta dùng dấu & để phân cách giữa các cặp giá
trị. Giả sử tôi muốn truyền id = 10 và title = 'get’ thì URL sẽ có dạng viblo.asia?
id=10&title=get. Lưu ý với các bạn là vị trí các cặp giá trị khơng quan trọng,
nghĩa là cặp title có thể nằm trước cặp id cũng được. Server nhận dữ liệu Tất cả
các dữ liệu mà Client gửi lên bằng phương thức GET đều được lưu trong một
biến tồn cục mà PHP tự tạo ra đó là biến $_GET, biến này là kiểu mảng kết
hợp lưu trữ danh sách dữ liệu từ client gửi lên theo quy luật key => value.
Đặc điểm:
 HTTP GET có thể được cache bởi trình dụt
 HTTP GET có thể duy trì bởi lịch sử đó cũng là lý do mà người dùng có thê
bookmark được.
 HTTP GET khơng được sử dụng nếu trong form có các dữ liệu nhạy cảm như
là password, tài khoản ngân hàng
 HTTP GET bị giới hạn số trường độ dài data gửi đi
2. Phương thức Post
 Phương thức POST có tính bảo mật hơn vì dữ liệu gửi phải thơng qua một
form HTML nên nó bị ẩn, nghĩa là chúng ta không thể thấy các giá trị đó được.
 Client Gửi Lên với phương thức GET thì dữ liệu được thấy trên URL thì
phương thức POST thì hồn tồn ngược lại, POST sẽ gửi dữ liệu qua một cái
form HTML và các giá trị sẽ được định nghĩa trong các input gồm các kiểu
(textbox, radio, checkbox, password, textarea, hidden) và được nhận dang
thông qua tên (name) của các input đó. Server nhận dữ liệu Tất cả các dữ liệu
gửi bằng phương thức POST đều được lưu trong một biến toàn cục $_POST do
PHP tự tạo ra, vì thế để lấy dữ liệu thì bạn chỉ cần lấy trong biến này là được.
Cũng như lưu ý với các bạn là trước khi lấy phải dùng hàm isset($bien) để
kiểm tra có hay khơng nhé.
Đặc điểm:
 HTTP POST khơng cache bởi trình dụt

 HTTP POST khơng thể duy trì bởi lịch sử đó cũng là lý do mà người dùng
không thê bookmark HTTP POST được.
15


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

 HTTP POST không giới hạn dữ liệu gửi đi

1.8

Phân tích và thiết kế hệ thống
 JXBrowser – Thư viện JXBrowser
 Tài liệu JXBrowser - /> Hướng dẫn - />
Trong hướng dẫn này, chúng tôi sẽ tạo hai lớp:
Class Browser.cs[Design]: Chúng tôi sẽ tạo một đối tượng ToolStrip và
MenuStrip để phục vụ như một trường địa chỉ và một cửa sổ. Người dùng sẽ nhập
URL vào trường địa chỉ và nhấn nút enter và chương trình sẽ dẫn người dùng đến
trang web, hiển thị nội dung trong cửa sổ.
Class Browser.cs: Chứa phương thức chính để chạy các hướng dẫn. Hướng dẫn
này được thực hiện với giả định rằng người dùng đã làm theo các hướng dẫn trước đó
và quen thuộc với các thuật ngữ mã hóa được sử dụng trong đó, đồng thời có kiến
thức lập trình C#.

1.9 Biểu đồ use - case

Hình 3: Sơ đồ Use-case


16


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

1.10 Biểu đồ tuần tự

Hình 4: Biểu đồ tuần tự

1.11 Biểu đồ trạng thái

Hình 5: Biểu đồ trạng thái

17


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

1.12 Biểu đồ hoạt động

Hình 6: Biểu đồ hoạt động

18


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP


GVHD: Đặng Quang Hiển

CHƯƠNG 3: XÂY DỰNG TRÌNH DUYỆT WEB
1.13 Thiết kế giao diện
Bước 1:Thêm một số công cụ trong biểu mẫu của bạn

Hình 7: Thiết kế các chức năng cơ bản của trình duyệt Web

Bước 2:Mã cho Quay lại / Chuyển tiếp / Trang chủ / Làm mới ..

19


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

Hình 8: Các chức năng của trình duyệt Web

Bước 3:Mã cho Nút Go/ Tìm kiếm

Hình 9: Chức năng tìm kiếm của trình duyệt Web

20


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển


Bước 4:Thêm Tab tìm kiếm

Hình 10: Chức năng thêm tab của trình duyệt Web

21


Đồ án cơ sở 4:Trình Duyệt Web bằng giao thức HTTP

GVHD: Đặng Quang Hiển

Bước 6:Xóa Tab hiện tại

Hình 11: Chức năng xóa tab hiện tại

Bước 7: Tạo lịch sử

Hình 12: Chức năng tạo lịch sử của trình duyệt Web

22


×