Máy chủ - Máy khách: Trong mạng máy tính, máy chủ hay còn gọi là server là một máy tính được sử dụng để các máy tính khác truy cập.. Giao thức mạng: Các máy tính trên mạng "nói chuyện" v
Trang 1TỔNG QUÁT VỀ MẠNG MÁY TÍNH VÀ INTERNET
I Khái niệm cơ bản:
1 Mạng máy tính: Là 2 hay nhiều máy tính được kết nối với nhau.
2 Máy chủ - Máy khách:
Trong mạng máy tính, máy chủ (hay còn gọi là server) là một máy tính được sử dụng để các máy tính khác truy cập Các máy tính truy cập vào 1 máy chủ được gọi là máy khách
Như vậy, 1 máy tính trong mạng có thể vừa là 1 máy chủ (khi có máy khác truy cập đến nó), vừa là một máy khách (nếu nó truy cập đến một máy tính khác)
3 Giao thức mạng:
Các máy tính trên mạng "nói chuyện" với nhau thông qua một ngôn ngữ đặc biệt gọi là các giao thức mạng Có rất nhiều giao thức khác nhau, mỗi giao thức có 1 nhiệm vụ riêng Ở đây tôi tạm chia ra làm 2 nhóm giao thức:
- Giao thức truyền dữ liệu, chuyên dùng để vận chuyển dữ liệu giữa 2 máy tính
- Giao thức xử lý dữ liệu, có nhiệm vụ xử lý dữ liệu nhận được từ giao thức truyền dữ liệu
Túm lại: Không nên phát hoảng khi nghe thấy 2 từ giao thức Chẳng qua
nó chỉ là 1 dạng ngôn ngữ để trao đổi với nhau mà thôi Và bạn cứ yên chí rằng nếu thích, bạn có thể tự định nghĩa ra một cái giao thức nào đó Chẳng hạn như các chương trình chat của Yahoo, hay các chương trình remote trojan… Chúng tự đẻ ra các giao thức riêng dựa trên nền giao thức TCP/IP đấy
4 Chùm giao thức TCP/IP
Giao thức TCP/IP là 1 giao thức được sử dụng để truyền dữ liệu giữa 2
Trang 2máy tính Theo giao thức này, mỗi máy tính sẽ có 1 địa chỉ xác định trên mạng gọi là địa chỉ IP Địa chỉ IP là một cụm chữ số có dạng a.b.c.d (a,b,c,d là các số từ 0 đến 255) VD: 174.178.0.1
Giao thức TCP/IP chỉ có nhiệm vụ duy nhất là truyền dữ liệu giữa 2 máy tính và đảm bảo giữ nguyên vẹn dữ liệu khi truyền đi Ngoài ra nó chẳng cần biết dữ liệu đó là gì và được xử lý như thế nào
Dựa trên khả năng vận chuyển của giao thức TCP/IP, người ta xây dựng nên một nhóm các giao thức khác chuyên xử lý dữ liệu nhận được từ TCP/IP, gọi là chùm giao thức TCP/IP hay họ giao thức TCP/IP
Để phân chia các giao thức con trong chùm giao thức TCP/IP, người ta
sử dụng một khái niệm khác gọi là Cổng giao thức Đây là 1 con số nguyên từ 0 đến 32767 Mỗi giao thức con trong chùm giao thức sẽ chiếm hữu một cổng riêng Thông thường thì mỗi chương trình ứng dụng trên server sẽ chịu trách nhiệm mở một cổng TCP/IP, định nghĩa giao thức cho cổng đó, và sau đó là lắng nghe các yêu cầu từ máy khách và xử lý các yêu cầu đó
Như vậy, trong hệ giao thức TCP/IP, một máy khách sẽ truy cập thành công đến máy chủ nếu như nó có địa chỉ IP và cổng đang mở của dịch vụ trên máy chủ
Chẳng hạn: Với 1 máy chủ quản lý web (web server), chúng ta cần phải
có một ứng dụng web gọi là web server Ứng dụng này sẽ mở 1 cổng (mặc định là 80) và xử lý các tín hiệu đến từ cổng đó
II Trang Web tĩnh và Trang Web động
1 Trang web tĩnh và trang web động
Bạn đã từng xây dựng một trang Web và đưa nó lên mạng? Trang web của bạn thật là thú vị và tất nhiên bạn muốn tham khảo ý kiến của người đọc? Chẳng nhẽ bạn lại cho số điện thoại và yêu cầu người góp ý phải gọi
Trang 3điện đến? Hic… Đảm bảo sẽ chẳng có ma nào thèm gọi điện.
Bạn muốn "xin" một ít thông tin về người duyệt Web… hic Làm cách nào bây giờ???
Vâng, đó chính là nhược điểm của cái gọi là trang web tĩnh Đó là các trang Web không cho phép bạn có thể tương tác với người dùng (chẳng hạn như là trao đổi hay thu thập các thông tin từ phía người dùng) Nó là các trang web có đuôi *.htm thông thường Ngược lại, các trang Web động cho phép bạn nhận thông tin từ người dùng, xử lý thông tin đó, và
có thể đáp trả lại các yêu cầu của họ Xem ra nó cũng linh động ra phết đấy chứ?
Để làm được điều đó, tất nhiên là bạn phải … theo dõi các bài viết này
2 Lập trình Script
Các trang web nguyên thuỷ sử dụng ngôn ngữ định dạng chuẩn là HTML (HyperText Markup Language) HTML chuẩn chỉ bao gồm các cặp thẻ đánh dấu để định khuôn dạng của tài liệu Tuỳ theo tên thẻ là gì mà trình duyệt sẽ tự động hiểu và làm các công việc do thẻ đó quy định Chẳng hạn như cặp thẻ <B>….</B> quy định đoạn văn bản trong đó sử dụng chữ đậm Vì vậy, trên thực tế người ta không coi nó là một ngôn ngữ (vì
nó chẳng liên quan gì đến những thứ mà ta hay gặp trong lập trình như biến, câu lệnh rẽ nhánh, lặp…) Cũng chính vì nguyên nhân này, nó phải
tự mở rộng bằng cách cho phép "nhúng" vào bản thân nó một số đoạn mã lệnh chương trình đặc biệt, người ta thường gọi chúng là các đoạn mã Script hay các đoạn mã nhúng Ngôn ngữ sử dụng trong các đoạn mã lệnh đó gọi là các ngôn ngữ Script Các ngôn ngữ script thường đơn giản
và không có nhiều sức mạnh như các ngôn ngữ "kinh điển" cùng tên, hay nói cách khác, chúng là một phần rất nhỏ của một ngôn ngữ nào đó được tích hợp vào trình duyệt để thực hiện một số thao tác nhất định
Chi tiết về ngôn ngữ HTML đã có đầy rẫy trên Internet, cũng như ở các hiệu sách, nên chúng không được nhắc lại ở đây Nếu các bạn chưa biết
gì về nó thì bạn phải tìm đọc các tài liệu về HTML trước khi tiếp tục theo dõi khoá học này
Lập trình Script ở máy khách
Trang 4Như tên gọi của nó, lập trình script ở máy khách là viết các đoạn script chạy trên máy khách Các đoạn mã này được máy chủ gửi kèm trong tài liệu, đưa về máy khách và được thực hiện ở đây
Trong tài liệu gửi về trình duyệt, các đoạn mã này thường được tìm thấy trong cặp thẻ <Script language ="xxxxxx">…</Script>
Có nhiều ngôn ngữ script phía máy khách Nổi tiếng hơn cả là Javascript
Kế đến là VbScript và PerlScript
Vì tài liệu này chủ yếu tập trung vào PHP - một ngôn ngữ script chạy trên máy chủ, nên chi tiết những ngôn ngữ này không được nhắc đến trong tài liệu Riêng về JavaScript, các bạn có thể tìm thấy các tài liệu tiếng Việt qua trang tìm kiếm Vinaseek.com Nếu có thời gian, tôi khuyên các bạn nên tìm hiểu về chúng Rất nhiều xảo thuật bắt mắt có thể tìm thấy trong các đoạn mã này
Lập trình Script ở máy chủ
Trái ngược với lập trình Script ở máy khách (thực thi mã lệnh ở máy khách), lập trình script ở máy chủ cho phép thực thi các đoạn mã ngay ở trên máy chủ Không như các đoạn mã script hoạt động ở máy khách, các tài liệu có chứa các đoạn mã script phía máy chủ thường được lưu ở các file tài liệu có đuôi mở rộng riêng biệt, và các đoạn mã thi hành trên máy chủ cũng phải được đặt trong một cặp thẻ đặc biệt tuỳ theo quy định của chương trình xử lý Chú ý rằng đối với mỗi loại ngôn ngữ server script sẽ
có một chương trình xử lý riêng Chẳng hạn các đoạn mã ASP thường được đặt trong các file *.asp, và chúng được xử lý bằng file ASP.dll Chi tiết về cách thức hoạt động của loại này, có thể tóm tắt như sau:
- Bước 1: Client gửi yêu cầu đến máy chủ
- Bước 2: Web server kiểm tra xem yêu cầu đó cần loại tài liệu nào Nếu
đó là loại tài liệu có chứa các đoạn mã server script, nó sẽ triệu gọi
chương trình xử lý tương ứng với loại tài liệu đó
- Bước 3: Chương trình xử lý sẽ thực thi các đoạn mã server script trong tài liệu đó, và trả kết quả (thường là dưới khuôn dạng HTML) về cho web server
- Bước 4: Web server trả kết quả tìm được cho Client và ngắt kết nối
Trang 5III THẾ GIỚI INTERNET
Tên miền
Ở bài trước, các bạn đã biết đến khái niệm địa chỉ IP (địa chỉ của một máy tính trên mạng, với bản IPV4 có dạng x.y.z.t, trong đó x,y,z,t là một số nguyên từ 0 đến 255
Tuy nhiên, địa chỉ IP là một dòng số không dễ nhớ tí nào Vì vậy người ta
đã phát minh ra một cái tên dễ chịu (dễ nhớ) hơn, đó chính là tên miền hay
domain Nói ngắn gọn thì tên miền là một cái tên được viết bằng ngôn ngữ
tự nhiên, sử dụng tập ký tự [a z,0 9,.,-] để chỉ đến một địa chỉ IP xác định Ví dụ: phpvn.org
Để xác định một cái địa chỉ IP nào đó dựa trên tên miền, người ta phải sử dụng một hệ thống máy chủ để ánh xạ từ tên miền thành IP
Tên miền được chia thành nhiều cấp, phân biệt bởi dấu chấm (.) Chúng ta xác định số cấp lần lượt từ phải sang trái bắt đầu từ 1, trong đó cấp lớn hơn
là con của cấp nhỏ hơn
Ví dụ: cntt.dhsphn.edu.vn gắn với 203.162.18.59 trong đó:
vn: Nước Việt Nam (Cấp 1)
edu: Tổ chức giáo dục (Cấp 2)
dhsphn: Tên cơ quan (Cấp 3)
cntt: đơn vị nhỏ trong cơ quan (Cấp 4)
Đặc biệt: Tên localhost luôn được gắn với địa chỉ IP 127.0.0.1.
Hệ thống tên miền trên Internet
Hệ thống tên miền trên internet được quản lý thống nhất bởi một tổ chức quốc tế và được điều khiển thông qua hệ thống máy chủ quản lý tên miền cấp cao nhất (TLD hay Top Level Domain)
Khi NSD gõ một địa chỉ URL vào ô address trên trình duyệt, nếu như phần đầu của địa chỉ này xác định một địa chỉ IP, trình duyệt sẽ kết nối tới máy chủ có địa chỉ IP đó Trong trường hợp phần đầu của URL xác định một tên miền, tên miền này sẽ được gửi đến hệ thống máy chủ TLD, từ đó qua các dịch vụ cung cấp domain uỷ quyền để tra địa chỉ IP tương ứng với tên miền Sau khi đã tìm thấy địa chỉ IP, hệ thống máy chủ TLD sẽ trả IP về cho trình
Trang 6duyệt và trình duyệt tiếp tục kết nối tới máy chủ có IP đã nhận được để "đòi" thông tin
Các tên miền được cung cấp tới tay người dùng thông qua các đại lý cho thuê tên miền, và thường theo dạng thuê bao tên miền hàng năm
Các dạng đuôi thông dụng:
• com: Commercial: Dành cho các tổ chức thương mại, doanh nghiệp
• net (Network): Dành cho các nhóm làm việc trên mạng hoặc các trang web chung chung (VD: noigiaitri.net )
• org (Organization): Dành cho các tổ chức nói chung (phi thương mại) vd: phpvn.org
• gov (Government): Dành cho các cơ quan hành chính
• edu (Education): Dành cho các tổ chức giáo dục
• Các hệ thống tên miền cấp quốc gia khác (VD: vn, cn, sg…)
Host
Thuật ngữ host ám chỉ một không gian lưu trữ trên hệ thống máy chủ và các dịch vụ kèm theo
Chất lượng của host được đánh gía thông qua:
• Lượng băng thông được sử dụng hàng tháng (Tính theo GB/month hay MB/month)
• Chất lượng của máy chủ/hệ thống máy chủ (CPU, RAM…)
• Băng thông của máy chủ
• Dung lượng ổ cứng chia sẻ
• Số lượng các host đặt trên cùng một hệ thống máy chủ
• Các dịch vụ kèm theo (email, web, ftp, hỗ trợ php, mysql…)
• Khả năng hỗ trợ số lượng user cùng truy cập đồng thời
Các dạng host
Trang 7Cụm máy chủ: Bao gồm nhiều máy chủ (từ vài máy chủ tới hàng ngàn máy chủ) cùng làm việc song song Đây là hệ thống với giá thành cực đắt, có thể lên tới hàng triệu dollar như các "nông trại" máy chủ của Google Hệ thống này có thể phục vụ cho hàng triệu lượt truy cập cùng lúc
• Máy chủ riêng (Dedicated Server) hay còn gọi là dạng thuê bao máy chủ riêng biệt, có giá thành tương đối cao (hàng trăm dollar/tháng) Các máy chủ này có thể phục vụ hàng trăm lượt truy cập đồng thời tuỳ thuộc vào cấu hình máy chủ
• Máy chủ riêng ảo (VPS hay Virtual Private Server): Bao gồm một hoặc một số máy chủ thực sự được chia thành nhiều máy chủ ảo Loại này rẻ hơn máy chủ riêng (khoảng vài chục dollar/tháng), tuy nhiên hiệu năng kém hơn do phải chia sẻ cho nhiều người dùng
• Web hosting: Một khoảng không gian lưu trữ đặt trên một máy chủ nào
đó Theo khái niệm này, một máy chủ có thể chia thành hàng ngàn Web Hosting Đây là loại dịch vụ rẻ nhất, hiệu suất kém nhất do phải chia sẻ năng lực máy chủ cho quá nhiều người sử dụng (vài dollar/tháng) Có một số loại hosting miễn phí, chủ yếu là để thử nghiệm dịch vụ hoặc để quảng cáo, song rất dễ bị chết Nếu bạn định làm một trang Web nghiêm chỉnh, hãy từ bỏ ý định sử dụng host miễn phí
Tải files lên host
Để tải file từ máy lên host, chúng ta có thể sử dụng các công cụ quản lý host (như CPanel) hoặc sử dụng chương trình FTP
Quảng bá Website
Khi chúng ta đã có một Website trên Internet, chúng ta cần đăng ký Website vào các máy tìm kiếm trong nước và thế giới (search engine) như: Google, Yahoo… Tiếp đó cần xây dựng các chiến lược để nâng cao
vị trí của Website trong hệ thống xếp hạng Website thế giới (VD: Alexa, Google Rank…) Việc nâng cao thứ hạng Website sẽ giúp người sử dụng
dễ dàng tìm đến Website của chúng ta
Một trong những chiến lược nhằm nâng cao thứ hạng Website là tối ưu từ khoá cho các hoạt động tìm kiếm của search engine (SEO – Search
Engine Otimization): Tối ưu tứ khoá liên quan tới tên miền, tiêu đề, các trường mô tả từ khoá… (sẽ được học trong HTML)
Các bạn có thể tìm kiếm các nhà cung cấp các dịch vụ đăng ký tên miền,
Trang 8webhosting, các thủ thuật SEO hay các công cụ đo đếm lượng truy cập (web hit counter)