cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · web viewkhoa khoa hỌc mÁy tÍnh...

33
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN KHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên thực hiện : NGUYỄN NGỌC HÀ GIANG NGUYỄN THỊ LINH Giảng viên hướng dẫn : TS. NGUYỄN HÀ HUY CƯỜNG Lớp : 17IT1

Upload: others

Post on 05-Sep-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN

KHOA KHOA HỌC MÁY TÍNH

ĐỒ ÁN CHUYÊN NGÀNH 2ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB

SERVER

Sinh viên thực hiện : NGUYỄN NGỌC HÀ GIANG

NGUYỄN THỊ LINH

Giảng viên hướng dẫn : TS. NGUYỄN HÀ HUY CƯỜNG

Lớp : 17IT1

Đà N ng, tháng 5 năm 2021ẵ

Page 2: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN

KHOA KHOA HỌC MÁY TÍNH

Đ ÁN CHUYÊN NGÀNH 2Ồ

Đ TÀI: XÂY D NG PH N M MỀ Ự Ầ Ề WEB SERVER

Đà N ng, tháng 5 năm 2021ẵ

Page 3: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

M Đ UỞ Ầ

Trong thời đại ngày nay, thời đại mà sức mạnh của Internet bùng nổ thì việc

tra cứu thông tin, tìm kiếm tài liệu trên mạng không còn là điều gì đó quá xa lạ.

Thông qua Internet mọi người có thể tra cứu thông tin, tìm tài liệu hay đơn giản là

đọc báo trong nước và quốc tế một cách nhanh chóng và hiệu quả nhất.

Với công nghệ Word Wide Web, hay còn gọi là website sẽ giúp bạn đưa

những thông tin mong muốn của mình lên mạng Internet cho mọi người cùng xem

một cách dễ dàng với các công cụ và ngôn ngữ lập trình khác nhau. Vậy việc lưu trữ

các trang web và làm sao người dùng có thể truy cập một trang web nào đó? Câu trả

lời đó chính là Web Server. Để hiểu rõ hơn về cơ chế hoạt động của một Web

Server cũng như các giao thức liên quan đến nó nhóm chúng em đã chọn đề tài

“Xây dựng phần mềm Web Server”.

Page 4: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

L I C M NỜ Ả Ơ

Để hoàn thành đồ án này em xin chân thành cảm ơn thầy TS. Nguyễn Hà Huy Cường trong thời qua, thầy đã giành nhiều thời gian và tâm huyết để hướng dẫn em thực hiện đề tài này.

Dưới đây là kết quả của quá trình tìm hiểu và nghiên cứu mà em đã đạt được trong thời gian vừa qua. Mặc dù rất cố gắng và được thầy cô giáo giúp đỡ nhưng do hiểu biết và kinh nghiệm của mình còn hạn chế nên có thể đây chưa phải là kết quả mà thầy cô mong đợi từ em. Em rất mong nhận được những lời nhận xét và đóng góp quý báu của thầy cô để đồ án của chúng em được hoàn thiện hơn cũng như cho em thêm nhiều kinh nghiệm cho công việc sau này.

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

Page 5: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

NH N XÉTẬ(C a gi ng viên)ủ ả

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

..........................................................................................................................................................................

............................................

M C L CỤ ỤCh ng 1ươ Gi i thi uớ ệ ..................................................................................................................................................1

1.1. T ng quanổ .......................................................................................................................................................... 1

1.1.1. B i c nh th c hi n đ tàiố ả ự ệ ề ...................................................................................................................1

Page 6: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

1.1.2.V n đ c n gi i quy tấ ề ầ ả ế ..................................................................................................................................2

1.1.3. Đ xu t n i dung th c hi nề ấ ộ ự ệ ......................................................................................................................2

1.2. Ph ng pháp, k t quươ ế ả................................................................................................................................2

1.2.1. Ph ng phápươ ....................................................................................................................................................2

1.2.2. K t quế ả............................................................................................................................................................... 3

1.3. C u trúc bài báo cáoấ .....................................................................................................................................3

Ch ng 2ươ Nghiên c u t ng quanứ ổ .......................................................................................................................4

2.1. Tìm hi u v giao th c TCP/IPể ề ứ .....................................................................................................................4

2.1.1. Giao th c TCP/IP là gì?ứ ................................................................................................................................4

2.1.2 T ng quan v giao th c TCP/IPổ ề ứ ...............................................................................................................4

2.1.3. Các t ng trong ch ng giao th c c a b giao th c TCP/IPầ ồ ứ ủ ộ ứ ...........................................................4

2.1.4. So sánh gi a TCP/IP và mô hình OSIữ .....................................................................................................8

2.1.5. Đóng gói d li u UDPữ ệ ...................................................................................................................................8

2.2. Tìm hi u v giao th c HTTPể ề ứ .........................................................................................................................9

2.2.1. Giao th c HTTP là gì?ứ ...................................................................................................................................9

2.2.2. Các thành ph n c b n c a m t giao th c HTTPầ ơ ả ủ ộ ứ ............................................................................9

2.2.3. Các đ c tr ng c b n c a giao th c HTTPặ ư ơ ả ủ ứ ......................................................................................10

2.3. Tìm hi u v Web Serverể ề ...............................................................................................................................10

2.4. Java Native Interface.......................................................................................................................................11

2.5.C++.............................................................................................................................................................................. 11

Ch ng 3ươ Tri n khai xây d ng và k t qu đ t đ cể ự ế ả ạ ượ .........................................................................13

3.1. Xây d ng giao di n và các ch c năngự ệ ứ ...................................................................................................13

3.2. Hoàn thi n thêm ch c năngệ ứ .......................................................................................................................14

3.2.1. Download phiên b n PHPả ........................................................................................................................14

3.2.2. Cài đ t môi tr ng cho PHPặ ườ ..................................................................................................................15

3.2.3. C u hình l i file php.iniấ ạ ............................................................................................................................15

3.4. K t qu đ t đ cế ả ạ ượ .............................................................................................................................................16

4.1. K t qu đ t đ cế ả ạ ượ .............................................................................................................................................17

4.2. Ch a đ t đ cư ạ ượ ...................................................................................................................................................17

4.3.H ng phát tri nướ ể ...............................................................................................................................................17

TÀI LI U THAM KH OỆ Ả .................................................................................................................................................18

DANH M C CÁC B NGỤ Ả

Page 7: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

B ng 1.1. B ng so sánh s khác nhau gi a TCP/IP và mô hình OSIả ả ự ữ ...............8

Page 8: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

DANH MỤC HÌNH

Hình 1. Tầng ứng dụng..........................................................................................5

Hình 2. Chức năng tầng giao vận..........................................................................6

Hình 3. Đóng gói dữ liệu UDP.............................................................................8

Hình 4. Cách thức hoạt động của web server......................................................11

Hình 5. Giao diện chương trình Web Server.......................................................13

Hình 6. Download phiên bản PHP......................................................................14

Hình 7. Cài đ t môi tr ng cho PHPặ ườ ................................................................15

Hình 8. Giao di n trang ch localhostệ ủ ..............................................................15

Hình 9. Giao di n thông báo l i không tìm th y trangệ ỗ ấ ..................................16

Hình 10. Giao di n c a m t trang web khi ch y b ng web server đ c xây ệ ủ ộ ạ ằ ượd ngự ....................................................................................................................16

Page 9: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

Ch ng 1ươ Gi i thi uớ ệ1.1. T ng quanổ

Năm 1989, Sir Tim Berners-Lee đã đ xu t m t d án m i cho ch nhânề ấ ộ ự ớ ủ

CERN, v i m c tiêu gi m b t trao đ i thông tin gi a các nhà khoa h c b ng cáchớ ụ ả ớ ổ ữ ọ ằ

s d ng h th ng siêu văn b n. D án d n đ n Berners-Lee vi t hai ch ngử ụ ệ ố ả ự ẫ ế ế ươ

trình vào năm 1990 đó là m t trình duy t g i là World Wide Webộ ệ ọ  và máy chủ

web đ u tiên trên th gi i, sau này đ c g i là CERN httpd, ch y trên NeXTSTEP.ầ ế ớ ượ ọ ạ

Đ v n hành m t website ta c n có m t web server.ể ậ ộ ầ ộ  M c đích chính c a webụ ủ

server là l u tr các t p c a website và phát chúng qua internet đ khách truyư ữ ệ ủ ể

c p web có th xem đ c. V b n ch t, m t web server đ n gi n ch là m t máyậ ể ượ ề ả ấ ộ ơ ả ỉ ộ

tính m nh mẽ v i kh năng l u tr và truy n d li u qua internet. Khi ai đó truyạ ớ ả ư ữ ề ữ ệ

c p m t trang web trình duy t c a h sẽ giao ti p v i web server, g i và nh nậ ộ ệ ủ ọ ế ớ ử ậ

các thông tin mà chúng đ c ra l nh đ xu t hi n trên màn hình máy tính c aượ ệ ể ấ ệ ủ

khách truy c p. Nh v y, vai trò ch y u c a web server là l u tr và chuy n t iậ ư ậ ủ ế ủ ư ữ ể ả

d li u website theo yêu c u t trình duy t c a khách truy c p.ữ ệ ầ ừ ệ ủ ậ

Đ hi u rõ h n v web server, cách th c ho t đ ng c a nó nhóm chúng emể ể ơ ề ứ ạ ộ ủ

ch n đ tài tìm hi u và xây d ng m t ch ng trình web server.ọ ề ể ự ộ ươ

1.1.1. B i c nh th c hi n đ tàiố ả ự ệ ề

Các webserver đã có:

XAMPP :

 Phần mềm XAMPP là một loại ứng dụng phần mềm khá

phổ biến và thường hay được các lập trình viên sử dụng để xây dựng và phát triển các

dựa án website theo ngôn ngữ PHP. XAMPP được sử dụng cho mục đích nghiên cứu,

phát triển website qua Localhost của máy tính cá nhân.

Ưu điểm:

- Có thể chạy được trên tất cả các hệ điều hành.

- Có cấu hình đơn giản cũng như nhiều chức năng hữu ích cho người dung

- Tích hợp nhiều thành phần với các tính năng

Nhược điểm:  

1

Page 10: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

- Bởi vì có cấu hình đơn giản nên XAMPP không được hỗ trợ cấu hình

Module, cũng không có Version MySQL, do đó, đôi khi sẽ mang đến sự

bất tiện cho người dùng. 

WAMP: Phần mềm này có chức năng hỗ trợ truy cập các trang web ngay

trên máy tính trên đường dẫn http://localhost.

Ưu điểm:

- Đây là phần mềm được sử dụng miễn phí, dễ cài đặt và sử dụng, với

nhiều phiên bản khác nhau tùy theo cấu hình máy tính.

Nhược điểm:

- Phần mềm này chỉ chạy trên hệ điều hành Windows (bản 32 bit và 64

bit).

1.1.2.V n đ c n gi i quy tấ ề ầ ả ếTrong quá trình học tập, chúng em nhận thấy nhiều Xampp và Wamp có nhiều

nhược điểm. Xampp và Wamp chỉ tạo môi trường chạy các tập tin script *.php mà

không tạo môi trường chạy ngôn ngữ khác. Vì vậy chúng em muốn tạo ra Webserver

tích hợp nhiều tính năng bao gồm:

- Apache

- PHP (tạo môi trường chạy các tập tin script *.php)

- C/C++ (tạo môi trường chạy các tập tin script*.cpp)

1.1.3. Đ xu t n i dung th c hi nề ấ ộ ự ệ- Tạo được chương trình máy chủ HTTP.

- Tạo được môi trường chạy các tập tin Script *.php

- Tạo được môi trường chạy các tập tin Script *.cpp

1.2. Ph ng pháp, k t quươ ế ả

1.2.1. Ph ng phápươGiai đo n m t: Tìm ki m tài li u, tìm hi u v web server và các giao th c ạ ộ ế ệ ể ề ứ

liên quan nh : TCP/IP, HTTP,…ưGiai đo n hai: xây d ng ch ng trình web server thông qua vi c s d ng ạ ự ươ ệ ử ụ

công c Eclipse và ngôn ng l p trình java.ụ ữ ậ

2

Page 11: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

Dùng các thư viện được hỗ trợ sẵn trong Java 10 như: ServerSocket, Socket, …

đặc biệt, chúng em dung framework JNI(Java Native Interface ) để có thể gọi nhiều

hàm viết bằng ngôn ngữ native (trong đó có ngôn ngữ C++).

1.2.2. K t quế ảXây d ng đ c ch ng trình web server v i nh ng ch c năng c b n.ự ượ ươ ớ ữ ứ ơ ả

1.3. C u trúc bài báo cáoấ

N i dung chính bao g m ộ ồ 4 ch ng:ươ- Ch ng 1: Gi i thi uươ ớ ệ- Ch ng 2: Nghiên c u t ng quanươ ứ ổ- Ch ng 3: Tri n khai xây d ng và k t qu đ t đ cươ ể ự ế ả ạ ượ- Ch ng 4: ươ K t lu nế ậ

3

Page 12: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

Ch ng 2ươ Nghiên c u t ng quanứ ổ2.1. Tìm hi u v giao th c TCP/IPể ề ứ2.1.1. Giao th c TCP/IP là gì?ứ

B giao th c TCP/IP, (ti ng Anh: Internet protocol suite ho c IP suite ho cộ ứ ế ặ ặ

TCP/IP protocol suite - b giao th c liên m ng), là m t b các giao th c truy nộ ứ ạ ộ ộ ứ ề

thông cài đ t ch ng giao th c mà Internet và h u h t các m ng máy tính th ngặ ồ ứ ầ ế ạ ươ

m i đang ch y trên đó. B giao th c này đ c đ t tên theo hai giao th c chínhạ ạ ộ ứ ượ ặ ứ

c a nó là TCP (Giao th c Đi u khi n Giao v n) và IP (Giao th c Liên m ng).ủ ứ ề ể ậ ứ ạ

Chúng cũng là hai giao th c đ u tiên đ c đ nh nghĩa.ứ ầ ượ ị

2.1.2 T ng quan v giao th c TCP/IPổ ề ứNh nhi u b giao th c khác, b giao th c TCP/IP có th đ c coi là m tư ề ộ ứ ộ ứ ể ượ ộ

t p h p các t ng, m i t ng gi i quy t m t t p các v n đ có liên quan đ n vi cậ ợ ầ ỗ ầ ả ế ộ ậ ấ ề ế ệ

truy n d li u, và cung c p cho 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ên vi c s d ng các d ch v c a các t ng th p h n. Vị ự ệ ử ụ ị ụ ủ ầ ấ ơ ề

m t lôgic, các t ng trê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úng d a vào các giao th 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 đ c truy n đi m t cách v t lý.ạ ố ể ượ ề ộ ậÝ t ng hình thành mô hình TCP/IP đ c b t ngu n t B giao th c liênưở ượ ắ ồ ừ ộ ứ

m ng trong công trình DARPA vào năm 1970. Tr i qua vô s năm nghiên c u vàạ ả ố ứ

phát tri n c a 2 kỹ s Robert E. Kahn và Vinton Cerf cùng s h tr c a không ítể ủ ư ự ỗ ợ ủ

các nhóm nghiên c u. Đ u năm 1978, giao th c TCP/ IP đ c n đ nh hóa v iứ ầ ứ ượ ổ ị ớ

giao th c tiêu chu n đ c dùng hi n nay c a Internet đó là mô hình TCP/IPứ ẩ ượ ệ ủ

Version 4.

Vào năm 1975, cu c th nghi m thông n i gi a 2 mô hình TCP/IP đ cộ ử ệ ố ữ ượ

di n ra thành công. Cũng b t đ u t đây, cu c th nghi m thông n i gi a các môễ ắ ầ ừ ộ ử ệ ố ữ

hình TCP/IP đ c di n ra nhi u h n và đ u đ t đ c k t qu t t. Cũng chính vìượ ễ ề ơ ề ạ ượ ế ả ố

đi u này, m t cu c h i th o đ c Internet Architecture Broad m ra, v i sề ộ ộ ộ ả ượ ở ớ ự

tham d c a h n 250 đ i bi u c a các công ty th ng m i, t đây giao th c vàự ủ ơ ạ ể ủ ươ ạ ừ ứ

mô hình TCP/IP đ c ph bi n r ng rãi trên kh p th gi i.2.1.3. Các t ng trongượ ổ ế ộ ắ ế ớ ầ

ch ng giao th c c a b giao th c TCP/IPồ ứ ủ ộ ứ

4

Page 13: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

2.1.3. Các t ng trong ch ng giao th c c a b giao th c TCP/IPầ ồ ứ ủ ộ ứ

2.1.3.1. T ng ng d ngầ ứ ụ

Hình 1. Tầng ứng dụng

Đây là l p giao ti p trên cùng c a mô hình. Đúng v i tên g i, 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ông qua cácụ ả ậ ế ữ ệ ữ

d ch v m ng khác nhau (duy t web, chat, g i email, m t s giao th c trao đ iị ụ ạ ệ ử ộ ố ứ ổ

d li u: SMTP, SSH,ữ ệ  FTP,...). D li u khi đ n đây sẽ đ c đ nh d ng theo ki uữ ệ ế ượ ị ạ ể

Byte n i Byte, cùng v i đó là các thông tin đ nh tuy n giúp xác đ nh đ ng điố ớ ị ế ị ườ

đúng c a m t gói tin.ủ ộGiao ti p x y ra trong t ng này là tùy theo các ng d ng c th và d li uế ả ầ ứ ụ ụ ể ữ ệ

đ c truy n t ch ng trình, trong đ nh d ng đ c s d ng n i b b i ngượ ề ừ ươ ị ạ ượ ử ụ ộ ộ ở ứ

d ng này, và đ c đóng gói theo m t giao th c t ng giao v n.ụ ượ ộ ứ ầ ậDo ch ng TCP/IP không có t ng nào n m gi a ng d ng và các t ng giaoồ ầ ằ ữ ứ ụ ầ

v n, t ng ng d ng trong b TCP/IP ph i bao g m các giao th c ho t đ ng nhậ ầ ứ ụ ộ ả ồ ứ ạ ộ ư

các giao th c t i t ng trình di n và t ng phiên c a mô hình OSI. Vi c này th ngứ ạ ầ ễ ầ ủ ệ ườ

đ c th c hi n qua các th vi n l p trình.ượ ự ệ ư ệ ậD li u th c đ g i qua m ng đ c truy n cho t ng ng d ng, n i nóữ ệ ự ể ử ạ ượ ề ầ ứ ụ ơ

đ c đóng gói theo giao th c t ng ng d ng. T đó, d li u đ c truy n xu ngượ ứ ầ ứ ụ ừ ữ ệ ượ ề ố

giao th c t ng th p t i t ng giao v n.ứ ầ ấ ạ ầ ậ

5

APPLICATION Data

TRANSPORT

LINK or NETWORK

INTERFACE

INTERNET

Segments

Packets

Bits &

Frames Data From The

Network

Data To The

Network

APPLICATION LAYER

DATA FLOW LAYER

TCP/IP MODEL

Page 14: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

Hai giao th c t ng th p thông d ng nh t là TCP và UDP. M i ng d ng sứ ầ ấ ụ ấ ỗ ứ ụ ử

d ng d ch v c a m t trong hai giao th c trên đ u c n có c ng. H u h t các ngụ ị ụ ủ ộ ứ ề ầ ổ ầ ế ứ

d ng thông d ng có các c ng đ c bi t đ c c p s n cho các ch ng trình ph cụ ụ ổ ặ ệ ượ ấ ẵ ươ ụ

v (server)(HTTP - Giao th c truy n siêu văn b n dùng c ng 80; FTP - Giao th cụ ứ ề ả ổ ứ

truy n t p dùng c ng 21, v.v..) trong khi các trình khách (client) s d ng cácề ệ ổ ử ụ

c ng t m th i (ephemeral port). Các thi t b đ nh tuy n và thi t b chuy n m chổ ạ ờ ế ị ị ế ế ị ể ạ

không s d ng t ng này nh ng các ng d ng đi u ch nh thông l ngử ụ ầ ư ứ ụ ề ỉ ượ

(bandwidth throttling) thì có dùng.

2.1.3.2. T ng giao v nầ ậ

Hình 2. Chức năng tầng giao vận

Ch c năng chính c a t ng giao v n là x lý v n đ giao ti p gi a các máyứ ủ ầ ậ ử ấ ề ế ữ

ch trong cùng m t m ng ho c khác m ng đ c k t n i v i nhau thông qua bủ ộ ạ ặ ạ ượ ế ố ớ ộ

đ nh tuy n. T i đây d li u sẽ đ c phân đo n, m i đo n sẽ không b ng nhauị ế ạ ữ ệ ượ ạ ỗ ạ ằ

nh ng kích th c ph i nh h n 64KB. C u trúc đ y đ c a m t Segment lúc nàyư ướ ả ỏ ơ ấ ầ ủ ủ ộ

là Header ch a thông tin đi u khi n và sau đó là d li u.ứ ề ể ữ ệ

Trong t ng này còn bao g m 2 giao th c c t lõi là TCP và UDP. Trong đó,ầ ồ ứ ố

TCP đ m b o ch t l ng gói tin nh ng tiêu t n th i gian khá lâu đ ki m tra đ yả ả ấ ượ ư ố ờ ể ể ầ

đ thông tin t th t d li u cho đ n vi c ki m soát v n đ t c nghẽn l uủ ừ ứ ự ữ ệ ế ệ ể ấ ề ắ ư

l ng d li u. Trái v i đi u đó, UDP cho th y t c đ truy n t i nhanh h nượ ữ ệ ớ ề ấ ố ộ ề ả ơ

nh ng l i không đ m b o đ c ch t l ng d li u đ c g i đi.ư ạ ả ả ượ ấ ượ ữ ệ ượ ử

6

APPLICATION LAYER DATA

Piece 1 Piece 2 Piece 3

Header Piece 1 Header Piece 1

Header Piece 3

Header Piece 2

Header Piece 3

Header Piece 2

UDP Datagram Or TCP Segment

TCP Header provides for:

Sourse & destination (ports)

Sequencing for same odeer delivery

Acknowledgement of received segments

Flow control and congestion managemen

UDP Header provides for:

Source and destination (ports)

The Transport layer

divides the data into

pieces and adds a

header for delivery

over the network.

Page 15: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

2.1.3.3. T ng m ngầ ạG n gi ng nh t ng m ng c a mô hình OSI. T i đây, nó cũng đ c đ nhầ ố ư ầ ạ ủ ạ ượ ị

nghĩa là m t giao th c ch u trách nhi m truy n t i d li u m t cách logicộ ứ ị ệ ề ả ữ ệ ộ

trong m ng. Các phân đo n d li u sẽ đ c đóng gói (Packets) v i kíchạ ạ ữ ệ ượ ớ

th c m i gói phù h p v i m ng chuy n m ch mà nó dùng đ truy n dướ ỗ ợ ớ ạ ể ạ ể ề ữ

li u. Lúc này, các gói tin đ c chèn thêm ph n Header ch a thông tin c aệ ượ ầ ứ ủ

t ng m ng và ti p t c đ c chuy n đ n t ng ti p theo. Các giao th cầ ạ ế ụ ượ ể ế ầ ế ứ

chính trong t ng là IP, ICMP và ARP.ầ

2.1.3.4. T ng v t lýầ ậLà s k t h p gi a t ng V t lý và t ng liên k t d li u c a mô hình OSI.ự ế ợ ữ ầ ậ ầ ế ữ ệ ủ

Ch u trách nhi m truy n d li u gi 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.ượ ỉ ị ầ

7

Page 16: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

2.1.4. So sánh gi a TCP/IP và mô hình OSIữB ng a 1.1. B ng so sánh s khác nhau gi a TCP/IP và mô hình OSIa ự ữ

TCP/IP Mô hình OSI

Tính b o m t ả ậ Không có ranh gi iớ nghiêm ng tặ

Có ranh gi i ch t chẽớ ặ

Ph ng pháp ti pươ ế c nậ

Ti p c n theo chi uế ậ ề ngang

Ti p c n theo chi u d cế ậ ề ọ

Mô hình phân t ngầ K t h p t ng phiên vàế ợ ầ t ng trình di n trongầ ễ t ng ng d ngầ ứ ụ

Có các t ng khác nhau vàầ m i t ng ch th c hi nỗ ầ ỉ ự ệ m t ch c năng riêngộ ứ

Thi t k mô hìnhế ế Giao th c đ c thi t kứ ượ ế ế đ u tiên và sau đó môầ hình đ c phát tri nượ ể

Vi c phát tri n mô hìnhệ ể x y ra tr c và sau đó làả ướ phát tri n giao th cể ứ

Truy n thôngề Ch h tr truy n thôngỉ ỗ ợ ề không k t n i phát ra tế ố ừ t ng m ngầ ạ

H tr c k t n i khôngỗ ợ ả ế ố dây và k t n i theo đ nhế ố ị tuy n trong t ng m ngế ầ ạ

Tính ph thu cụ ộ TCP/IP là m t mô hìnhộ ph thu c vào giao th cụ ộ ứ

OSI là m t chu n giaoộ ẩ th c đ c l pứ ộ ậ

2.1.5. Đóng gói d li u UDPữ ệ

Hình 3. Đóng gói dữ liệu UDP

D li u c a ng i dùng sẽ l n l t đi qua các t ng trong mô hình, m iữ ệ ủ ườ ầ ượ ầ ở ỗ

t ng, d li u sẽ đ c thêm ph n header đ đi u khi n và chuy n xu ng t ngầ ữ ệ ượ ầ ể ề ể ể ố ầ

th p h p. Bên nh n sẽ l n l t bóc tách các header t t ng th p và chuy n lênấ ơ ậ ầ ượ ừ ầ ấ ể

t ng cao, cho đ n ng i dung.ầ ế ườ

8

Page 17: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

2.2. Tìm hi u v giao th c HTTPể ề ứ2.2.1. Giao th c HTTP là gì?ứ

HTTP (Ti ng Anh: HyperText Transfer Protocol - Giao th c truy n t i siêuế ứ ề ả

văn b n) là m t trong năm giao th c chu n c a 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) trong mô hình Client/Server dùng cho World Wide Web-WWW,ụ

HTTP là m t giao th c thu c t ng ng d ng, n m trên c p giao th c t ng giaoộ ứ ộ ầ ứ ụ ằ ặ ứ ầ

v n & t ng m ng là TCP/IP.ậ ầ ạ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 cùng v i HTML là phát ki n c a Tim Berners-Lee CERN vào nămớ ế ủ ở

1989 đ ng sau là các t ch c l n (IETF) và World Wide Web Consortium (W3C),ứ ổ ứ ớ

và đ nh cao là vi c công b ra hàng lo t các b n RFC(Request for Comments).ỉ ệ ố ạ ảPhiên b n đ u tiên c a HTTP là HTTP V0.9 (1991). Năm 1995, Davidả ầ ủ

Ragger lãnh đ o nhóm HTTP Working Group (vi t t t HTTP WG) mu n m r ngạ ế ắ ố ở ộ

giao th c này đa d ng h n nh : th meta-rich decription, và b o m t h n b ngứ ạ ơ ư ẻ ả ậ ơ ằ

cách thêm các ph ng th c khác và các tr ng header.ươ ứ ườHTTP lúc công b đ n nay đã tr i qua nhi u phiên b n 1.x (1.0, 1.1,ố ế ả ề ả

1.2,1.3), đ n ngày nay là phiên b n 2.x.ế ảHTTP/2 đ c công b trong b n RFC 7540 vào tháng 7 năm 2015.ượ ố ả

2.2.2. Các thành ph n c b n c a m t giao th c HTTPầ ơ ả ủ ộ ứGiao th c HTTP c u trúc không quá ph c t p nh nh ng giao th c khác.ứ ấ ứ ạ ư ữ ứ

Nó bao g m các thành ph n c b n:ồ ầ ơ ả

1. URLs (Uniform Resource Locators): URLs dùng đ tham chi u t i tàiể ế ớ

nguyên trên website. C u trúc c a 1 URLs g m:ấ ủ ồ  Protocol, Host, Port, Resource

Path, Query.

2. HTTP Request methods (các yêu c u): Đây là 1 t p ph ng th c yêu c uầ ậ ươ ứ ầ

đ ng i dùng s d ng t ng tác v i máy ch .ể ườ ử ụ ươ ớ ủ

9

Page 18: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

3. Status Code (Mã tr ng thái): Ti p theo k sau các Request Methodsạ ế ế

chính là các Status Code ( Mã tr ng thái ).ạ  Status Code là m t con s đ xác đ nhộ ố ể ị

tr ng thái sau khi th c thi m t yêu c u HTTP.ạ ự ộ ầ

4. C u trúc m t gói tin HTTP bao g m 3 thành ph n sau:ấ ộ ồ ầ

Request Line : Ch a Request method và đ ng d n URL c a tàiứ ườ ẫ ủ

nguyên đích.

Header: Ch a các thông tin c a thi t b th c hi n Request này.ứ ủ ế ị ự ệ Body : Ph n thân ch a d li u c a Request.ầ ứ ữ ệ ủ

2.2.3. Các đ c tr ng c b n c a giao th c HTTPặ ư ơ ả ủ ứHTTP có 3 đ c tr ng c b n giúp nó t o thành m t giao th c c b nặ ư ơ ả ạ ộ ứ ơ ả

nh ng nhi u s c m nh:ư ề ứ ạ

- HTTP là m t ph ng ti n đ c l p: Đi u này có nghĩa là b t c lo i d li uộ ươ ệ ộ ậ ề ấ ứ ạ ữ ệ

(data) nào cũng có th đ c g i HTTP ch c n máy ch và máy khách bi tể ượ ử ỉ ầ ủ ế

cách ki m tra d li u.ể ữ ệ  

- HTTP là giao th c k t n i không liên t c: Khi có m t yêu c u t máy kháchứ ế ố ụ ộ ầ ừ

đ c t o ra, máy ch Client ng t k t n i t Server và đ i ph n h i. Sauượ ạ ủ ắ ế ố ừ ợ ả ồ

khi server x lý xong yêu c uử ầ   thì sẽ k t n i l i v i Client đ g i ph n h i.ế ố ạ ớ ể ử ả ồ- HTTP là stateless protocol: Đi u này có nghĩa làề  request hi n t i khôngệ ạ

bi t nh ng gì đã hoàn thành trong request tr c đó.ế ữ ướ

2.3. Tìm hi u v Web Serverể ềWeb server (Máy ch web) là t đ c dùng đ ch ph n m m máy ch ,ủ ừ ượ ể ỉ ầ ề ủ

ho c ph n c ng dành riêng đ ch y các ph n m m trên máy ch , đ t đó cóặ ầ ứ ể ạ ầ ề ủ ể ừ

th cung c p các d ch v World Wide Web. M t máy ch web x lí các yêu c uể ấ ị ụ ộ ủ ử ầ

(request) t các client (trong mô hình server - client) thông qua giao th c HTTPừ ứ

và m t s giao th c liên quan khác.ộ ố ứ khía c nh ph n c ngỞ ạ ầ ứ , m t web server là m t máy tính l u tr các fileộ ộ ư ữ

thành ph n c a m t website (ví d : các tài li uầ ủ ộ ụ ệ  HTML, các file nh, CSS và các fileả

JavaScript) và có th phân phát chúng t i thi t b c a ng i dùng cu i (end-user).ể ớ ế ị ủ ườ ố

Nó k t n i t i m ng Internet và có th truy c p t i thông qua m t tên mi n.ế ố ớ ạ ể ậ ớ ộ ề

10

Page 19: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

khía c nh ph n m mỞ ạ ầ ề , m t web server bao g m m t s ph n đ đi uộ ồ ộ ố ầ ể ề

khi n cách ng i s d ng web truy c p t i các file đ c l u tr trên m t HTTPể ườ ử ụ ậ ớ ượ ư ữ ộ

server(máy ch HTTP). M tủ ộ  HTTP server là m t ph n m m hi u đ c cácộ ầ ề ể ượ

URL (các đ a ch web) và HTTP (giao th c trình duy t c a b n s d ng đ xemị ỉ ứ ệ ủ ạ ử ụ ể

các trang web).

m c c b n nh t, b t c khi nào m t trình duy t c n m t file đ c l uỞ ứ ơ ả ấ ấ ứ ộ ệ ầ ộ ượ ư

tr trên m t web server, trình duy t request (yêu c u) file đó thông qua HTTP.ữ ộ ệ ầ

Khi m t request t i đúngộ ớ  web server (ph n c ng), HTTP server (ph n m m) g iầ ứ ầ ề ử

tài li u đ c yêu c u tr l i, cũng thông qua HTTP.ệ ượ ầ ở ạ

Hình 4. Cách thức hoạt động của web server

2.4. Java Native Interface

Java Native Interface (JNI) là một framework cho phép một chương trình Java

chạy trên JVM có thể gọi các hàm/chương trình viết bằng ngôn ngữ native (ngôn ngữ

dành cho hệ thống đó như C/C++, Assembly…) hoặc được gọi từ các chương trình

native đó.

Khi một môi trường Java được cài trên một hệ điều hành, sẽ có trường hợp người

lập trình muốn sử dụng các thư viện của riêng hệ điều hành đó. Lý do là vì dùng thư

viện của riêng hệ điều hành sẽ nhanh hơn, hiệu suất cao hơn

Ngoài ra đối với hệ điều hành Windows thì số lượng các thư viện do cộng đồng

viết ra rất nhiều, và có một số thư viện cực kỳ đồ sộ, việc viết lại các thư viện này

bằng ngôn ngữ Java sẽ mất nhiều thời gian hơn so với việc tìm cách sử dụng chúng từ

Java.

11

Page 20: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

JNI là một tính năng cực kỳ mạnh mẽ cho phép chúng ta sử dụng code từ các ngôn

ngữ khác, JNI có tính chất 2 chiều, tức là code từ các ngôn ngữ khác cũng có thể gọi

lại code từ Java nữa.

2.5.C++

Ngôn ngữ lập trình C++ là một ngôn ngữ lập trình hướng đối tượng(OOP – Object-

oriented programming) được phát triển bởi Bjarne Stroustrup. C++ là ngôn ngữ lập

trình được phát triển trên nên tảng của ngôn ngữ lập trình C. Do đó, C++ có song song

cả 2 phong cách(style) lập trình hướng cấu trúc giống C và có thêm phong cách hướng

đối tượng. Trong nhiều trường hợp, C++ sử dụng kết hợp cả 2 style trên. Do đó, nó

được xem là một ngôn ngữ “lai tạo”.

C++ là một ngôn ngữ lập trình cấp trung. Bởi vì nó có các tính chất của cả ngôn ngữ

lập trình bậc thấp (Pascal, C…) và ngôn ngữ lập trình bậc cao (C#, Java, Python…).

12

Page 21: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

Ch ng 3ươ Tri n khai xây d ng và k t qu đ t đ cể ự ế ả ạ ượ3.1. Xây d ng giao di n và các ch c năngự ệ ứ

Sau khi đã tìm hi u v web server v m t s giao th c liên quan khác ể ề ả ộ ố ứb c ti p theo ti n hành xây d ng ch ng trình. S d ng ngôn ng l p trình ướ ế ế ự ươ ử ụ ữ ậjava đ xây d ng giao di n và các ch c năng.ể ự ệ ứ

Hình 5. Giao diện chương trình Web Server

13

Page 22: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

3.2. Hoàn thi n thêm ch c năngệ ứ3.2.1. Download phiên b n PHPả

Hình 6. Download phiên bản PHP

14

Page 23: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

3.2.2. Cài đ t môi tr ng cho PHPặ ườ

Hình 7. Cài đ t môi tr ng cho PHPặ ườ

3.2.3. C u hình l i file php.iniấ ạĐ i tên file “php.ini-development” thành “php.ini” và thay đ i m t s ổ ổ ộ ốthông s đ có th s ố ể ể ử d ng các ụ extension c a PHPủ .

Giao di n chính c a localhost:ệ ủ

`

Hình 8. Giao di n trang ch localhostệ ủ

15

Page 24: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

3.4. K t qu ế ả

Giao di n thông báo l i không tìn th y trangệ ỗ ấ

Hình 9. Giao di n thông báo l i không tìm th y trangệ ỗ ấ

Giao di n c a m t trang web khi ch y trên localhost đ c xây d ng.ệ ủ ộ ạ ượ ự

Hình 10. Giao di n c a m t trang web khi ch y b ng web server đ c xây d ngệ ủ ộ ạ ằ ượ ự

16

Page 25: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

Chương 4 Kết luận

Qua đ tài ề “Xây d ng ph n m m web server”ự ầ ề nhóm đ tài đã đ t và ch aề ạ ư

đ t đ c nh ng th sau:ạ ượ ữ ứ

4.1. K t qu đ t đ cế ả ạ ượ

- Hi u đ c web server là gì và các giao th c liên quan đ n web server.ể ượ ứ ế- Xây d ng đ c m t ch ng trình web server.ự ượ ộ ươ

4.2. Ch a đ t đ cư ạ ượ

- M t s ch c năng c a ch ng trình v n ch a đ c hoàn thi n.ộ ố ứ ủ ươ ẫ ư ượ ệ

- Ch a ch y đ c m t s ngôn ng web.ư ạ ượ ộ ố ữ

4.3.H ng phát tri nướ ể

Để phát triển đề tài này em nhận tháy cần phải tiếp tục thực hiện một số công

việc như:

- Hoàn thiện phần giao diện .

- Hoàn thiện các chức năng phù hợp với thực tế .

17

Page 26: Cdaotao.vku.udn.vn/uploads/2021/05/1621517350-bao-cao... · Web viewKHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI: XÂY DỰNG PHẦN MỀM WEB SERVER Sinh viên

TÀI LI U THAM KH OỆ Ả1. Bài gi ng môn L p trình m ng – PGS.TS Huỳnh Công Pháp.ả ậ ạ2. Advanced Network Programming – Principles and Techniques.

3. Các tài li u khácệ

18