text:
Trong khi đó, theo kế hoạch cung cấp điện và vận hành hệ thống điện năm 2012 tại Văn bản số 6785/QĐ-BCT ngày 23/12/2011 do Bộ Công thương ban hành, tổng sản lượng điện của các nhà máy điện và nhập khẩu của toàn quốc năm 2012 là 120,795 tỷ kWh, tăng 10,89% so với năm 2011. Cụ thể, sản lượng thủy điện là 45,029 tỷ kWh; sản lượng nhiệt điện than là 24,78 tỷ kWh; sản lượng nhiệt điện tua-bin khí là 45,744 tỷ kWh; sản lượng nhiệt điện dầu cả là 0,506 tỷ kWh, trong đó dầu FO là 0,271 tỷ kWh và sản lượng điện nhập khẩu là 4,65 tỷ kWh.
Rõ ràng, có sự chênh lệch rất lớn giữa thực tế với kế hoạch cung cấp điện và vận hành hệ thống điện năm 2012. Đáng chú ý là, nguồn phát từ thủy điện với giá thành thấp nhất trong các loại nguồn điện có sự tăng trưởng mạnh, tới gần 8 tỷ kWh. Sự tăng trưởng về nguồn phát thủy điện của năm 2012 chủ yếu đến từ Nhà máy Thủy điện Sơn La, công suất 2.400 MW, có sản lượng điện hàng năm khoảng 10 tỷ kWh, vừa khánh thành cuối tuần qua, về đích sớm 3 năm so với Nghị quyết của Quốc hội.
Thực tế, cơ cấu nguồn điện, giá nhiên liệu, tỷ giá là 3 thông số đầu vào tác động trực tiếp tới chi phí phát điện mà đơn vị phát điện không có khả năng kiểm soát theo Quyết định 24/2011/QĐ-TTg. Vấn đề là, trong khi biến động của giá nhiên liệu và tỷ giá có thể dễ dàng nhận thấy do phụ thuộc vào giá xăng dầu thế giới, giá than do Bộ Tài chính điều hành hay công bố của Ngân hàng Nhà nước, thì việc vận hành cơ cấu nguồn điện thực tế lại phụ thuộc không nhỏ vào “độ khéo của con người”, bởi hệ thống điện của Việt Nam có sự tham gia lớn của nguồn thủy điện phụ thuộc nhiều vào mưa lũ.
Song song với phát tăng thủy điện giá thành rẻ, còn là sự giảm đáng kể huy động của các nguồn điện khác là nhiệt điện khí, nhiệt điện than, nhiệt điện dầu và đặc biệt là các nhà máy điện chạy dầu FO.
Song song với phát tăng thủy điện giá thành rẻ, còn là sự giảm đáng kể huy động của các nguồn điện khác là nhiệt điện khí, nhiệt điện than, nhiệt điện dầu và đặc biệt là các nhà máy điện chạy dầu FO.
Nếu theo cách lý giải của ông Tri về giá thành điện năm 2011 của các nhà máy thủy điện đa mục tiêu do EVN quản lý là thấp nhất, bình quân chỉ 507 đồng/kWh, trong khi các nhà máy nhiệt điện chạy khí có giá 1.037 đồng/kWh, nhiệt điện chạy dầu lên tới 4.692 đồng/kWh, thì việc ưu tiên tối đa phát điện từ các nhà máy thủy điện cũng là điều dễ hiểu với một doanh nghiệp như EVN.
Như vậy, cùng với thực tế kinh tế khó khăn, khiến nhu cầu tiêu dùng điện của cả nước không như dự báo từ đầu năm và việc vận hành hệ thống điện khéo léo, thì con số lãi năm 2012 của EVN chắc chắn không dừng lại ở mức 3.500-4.000 tỷ đồng như công bố.
Như vậy, cùng với thực tế kinh tế khó khăn, khiến nhu cầu tiêu dùng điện của cả nước không như dự báo từ đầu năm và việc vận hành hệ thống điện khéo léo, thì con số lãi năm 2012 của EVN chắc chắn không dừng lại ở mức 3.500-4.000 tỷ đồng như công bố.
DN Mỹ khẳng định đầu tư lâu dài tại Việt Nam
Thời điểm vàng mua hàng Laptop
Đến lúc nên thả nổi lãi suất tiền gửi
Việt Nam trúng thầu xuất khẩu 200.000 tấn gạo
Bán trà đá, chạy xe ôm: Không ai thất nghiệp
BST đệm cao cấp nhất Việt Nam được bán tại…
Tỷ phú Mỹ gốc Việt sở hữu 2,8 tỷ USD làm giàu như thế nào?
Nghệ sĩ Chánh Tín giao nhà cho Ngân hàng Phương Nam
Chứng khoán chiều 17/9: Cổ chứng khoán đóng trần hàng loạt
Cán bộ, công chức có thể sắp được vay tới 2 tỷ đồng mua nhà
Hoa Kỳ tài trợ giải pháp lưới điện thông minh tại Việt Nam
Tạo mục mới Top mục tự tạo
Nhúng Baomoi vào web của bạn
Thống kê & So sánh báo điện tử
Việc tổng hợp và sắp xếp các thông tin trên Báo Mới đều được thực hiện tự động bởi một chương trình máy tính.
Giấy phép số 46/GP-TTĐT cấp ngày 13/01/2012
Báo Mới có bản quyền thuộc Công ty Cổ phần Công nghệ EPI.

Cache-Control: no-cache


text:
Việt Nam
Đông Nam Bộ
Bình Dương
Bất kỳ
Bán thời gian
Toàn thời gian
Lâu dài
Hợp đồng
Tạm thời
Đào tạo
Tình nguyện
sieu, Bình Dương
Nhân viên bán hàng siêu thị tại Bình Dương 15
CoNG TY TNHH MTV MYUNG GA FOOD
-
Bình Dương
- 3.000.000-5.000.000₫ một tháng
Nam / Nữ Bảo Vệ Siêu Thi Lương Cao 14
TAP DOAN BAO VE . VE SY VINA HOANG LONG
-
Bình Dương
- 5.000.000-7.000.000₫ một tháng
Nhân viên Bảo Vệ Siêu Thị 14
Nhân viên Bán Hàng Trong Siêu Thị
Bình Dương
Giám Đốc Siêu Thị
Nhân viên kho siêu thị tại Bình Dương 04
Cong ty Co phan The Gioi Di Dong
-
Bình Dương
MERCHANDISING STAFF / Nhân Viên Bán Hàng Siêu Thị 27
Cong Ty TNHH Sapporo Viet Nam
-
Bình Dương
Trực bán hàng siêu thị
Cong Ty Co Phan Thiet Bi Nha Bep VI NA
-
Bình Dương
Nhân viên bán hàng tại siêu thị điện máy
Cong Ty TNHH Hang Nhap Khau Chau Au
-
Bình Dương
Lao Động Phổ Thông Làm Bảo Vệ Siêu thị 21
Cong Ty Bao Ve Hoang Long security- 24h
-
Bình Dương
- 5.000.000-7.000.000₫ một tháng
Nhân Viên Thu Ngân Siêu Thị Aeon Mall - Bình Dương
Bình Dương
- 3.000.000-4.000.000₫ một tháng
Thu Ngân Siêu Thị Aeon Mall - Bình Dương
Cong ty TNHH Fire Phoenix
-
Bình Dương
- 200-500 $ một tháng
Cong Ty TNHH FIRE PHOENIX
-
Bình Dương
Nhân Viên Kinh Doanh - Siêu Thị Aeon Mall Bình Dương
Cong ty TNHH Fire Phoenix
-
Bình Dương
- 200 $ một tháng
Bác Sĩ Siêu Âm
trang:
1
| 2
| 3
>>
Giới thiệu Careerjet
|
Những tìm kiếm thường gặp
|
Điều khoản & điều kiện
|
Việc theo khu vực
|
Việc theo công ty
© 2014 Careerjet

markdown:
[Nhân viên bán hàng siêu thị tại Bình Dương 15](/job/037341602b2ba33a695b016dcd63d6bf.html)
CoNG TY TNHH MTV MYUNG GA FOOD
-
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
- 3.000.000-5.000.000₫ một tháng
**Siêu**thị Lotte Bình Dương Quyền lợi...
[Nam / Nữ Bảo Vệ Siêu Thi Lương Cao 14](/job/b2600dd9ca3c21c49c36ee8944493b18.html)
TAP DOAN BAO VE . VE SY VINA HOANG LONG
-
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
- 5.000.000-7.000.000₫ một tháng
**Siêu**Thị Big C Miền Đông, Big C Gò Vấp, Big C Hoàng Văn Thụ, Big C Trường Chinh, Big C An Lạc, Big C Đồng Nai, Big C Dĩ An... - **Siêu**Thị...
TAP DOAN BAO VE . VE SY VINA HOANG LONG
-
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
- 5.000.000-7.000.000₫ một tháng
**Siêu**Thị Big C Miền Đông, Big C Gò Vấp, Big C Hoàng Văn Thụ, Big C Trường Chinh, Big C An Lạc, Big C Đồng Nai, Big C Dĩ An... - Khu Công...
[Nhân viên Bán Hàng Trong Siêu Thị](/job/ba583c3db9c94a7416b3c3d093cf0bc6.html)
**siêu**thị Coopmart và... sữa, hàng tiêu dùng nhanh trong **siêu**thị Chế độ: Lương cơ bản + tiền trách nhiệm = 4.000.000đ/tháng + thưởng hoa hồng cao, thu nhập trên 8.000.000đ...
[Nhân viên Bán Hàng Trong Siêu Thị](/job/f87d9933002b4d4659fe2e849cf66650.html)
**siêu**thị Coopmart và... sữa, hàng tiêu dùng nhanh trong **siêu**thị Chế độ: Lương cơ bản + tiền trách nhiệm = 4.000.000đ/tháng + thưởng hoa hồng cao, thu nhập trên 8.000.000đ...
**Siêu**thị VINATEX (vinatexmart) thuộc Tập Đoàn Dệt May Việt Nam. Thành lập ngày 10/10/2001. Là chuỗi **Siêu**thị tổng hợp trong... em. Định hướng đến năm 2015 Vinatexmart mở rộng mạng lưới bán lẻ và bán sỉ với 200 cửa hàng, **siêu**thị, trung tâm thương mại và có mặt hầu hết các...
**Siêu**thị VINATEX (vinatexmart) thuộc Tập Đoàn Dệt May Việt Nam. Thành lập ngày 10/10/2001. Là chuỗi **Siêu**thị tổng hợp trong... em. Định hướng đến năm 2015 Vinatexmart mở rộng mạng lưới bán lẻ và bán sỉ với 200 cửa hàng, **siêu**thị, trung tâm thương mại và có mặt hầu hết các...
[Nhân viên Bán Hàng Trong Siêu Thị](/job/fde20d6e1a2cc3efb7487dc51d77f9ba.html)
**siêu**thị Coopmart và... sữa, hàng tiêu dùng nhanh trong **siêu**thị Chế độ: Lương cơ bản + tiền trách nhiệm = 4.000.000đ/tháng + thưởng hoa hồng cao, thu nhập trên 8.000.000đ...
**Siêu**thị VINATEX (vinatexmart) thuộc Tập Đoàn Dệt May Việt Nam. Thành lập ngày 10/10/2001. Là chuỗi **Siêu**thị tổng hợp trong... em. Định hướng đến năm 2015 Vinatexmart mở rộng mạng lưới bán lẻ và bán sỉ với 200 cửa hàng, **siêu**thị, trung tâm thương mại và có mặt hầu hết các...
**Siêu**thị VINATEX (vinatexmart) thuộc Tập Đoàn Dệt May Việt Nam. Thành lập ngày 10/10/2001. Là chuỗi **Siêu**thị tổng hợp trong... em. Định hướng đến năm 2015 Vinatexmart mở rộng mạng lưới bán lẻ và bán sỉ với 200 cửa hàng, **siêu**thị, trung tâm thương mại và có mặt hầu hết các...
[Nhân viên kho siêu thị tại Bình Dương 04](/job/0cc04cf5fb847417d039eedd898b138b.html)
Cong ty Co phan The Gioi Di Dong
-
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
**siêu**thị thuộc 63/63 tỉnh thành cả nước Hưởng các chế độ bảo hiểm y tế... dẫn đầu của nhà bán lẻ hàng công nghệ với quy mô phủ khắp 63/63 tỉnh thành toàn quốc hơn 236 **siêu**thị khang trang hơn 6000 nhân viên không...
[MERCHANDISING STAFF / Nhân Viên Bán Hàng Siêu Thị 27](/job/e85dbcc53c3a34f7dd57a04f7193b21e.html)
Cong Ty TNHH Sapporo Viet Nam
-
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
**siêu**thị thúc đẩy doanh số bán hàng cho người tiêu dùng trong phạm vi được giao.... Maintaining and developing display market share / Đảm bảo hàng hóa được trưng bày đầy đủ và đẹp mắt tại các **siêu**thị. Duy trì và phát triển thị phần...
Cong Ty Co Phan Thiet Bi Nha Bep VI NA
-
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
**siêu**thị Số lượng tuyển Nghành nghề Nơi làm việc Cấp bậc Nhân viên Loại hình công việc Bán thời gian... cố định Mức lương Thỏa thuận Mô tả công việc Chăm sóc hàng hóa tại **siêu**thị, trực tư vấn bán hàng tại **siêu**thị khu vực Biên Hòa - Đồng Nai...
[Nhân viên bán hàng tại siêu thị điện máy](/job/b135e16ee355eade7fa236941394ddab.html)
Cong Ty TNHH Hang Nhap Khau Chau Au
-
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
**siêu**thị điện máy Số lượng tuyển Nghành nghề Nơi làm việc Cấp bậc Nhân viên Loại hình công... việc Toàn thời gian cố định Mức lương Thỏa thuận Mô tả công việc Tư vấn,giới thiệu sản phẩm và của công ty nhãn hàng Zelmer và Bosch tại **siêu**...
[Lao Động Phổ Thông Làm Bảo Vệ Siêu thị 21](/job/f4865831ca8ad75dce9a21f14d4807dc.html)
Cong Ty Bao Ve Hoang Long security- 24h
-
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
- 5.000.000-7.000.000₫ một tháng
**Siêu**Thị Big C Miền Đông, Big C Gò Vấp, Big C Hoàng Văn Thụ, Big C Trường Chinh, Big C An Lạc, Big C Đồng Nai, Big C Dĩ An... - **Siêu**Thị..., bệnh viện, ngân hàng, **siêu**thị, khách sạn, nhà ở và công trình cao ốc có 100% vốn đầu tư nước ngoài tại Việt Nam Thu gọn Quy mô công ty Trên...
[Nhân Viên Thu Ngân Siêu Thị Aeon Mall - Bình Dương](/job/e959cbf634a5b07a209928d9abe74021.html)
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
- 3.000.000-4.000.000₫ một tháng
**siêu**thị - Trung thực, tỉ mỉ, cẩn thận...
[Thu Ngân Siêu Thị Aeon Mall - Bình Dương](/job/96fe91c32315d58c22c6a4c3659e46ad.html)
Cong ty TNHH Fire Phoenix
-
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
- 200-500 $ một tháng
**siêu**thị - Trung thực, tỉ mỉ, cẩn thận, - Có...
[Nhân Viên Thu Ngân Siêu Thị Aeon Mall - Bình Dương](/job/204fb852b5cc7c28a8fd5edd1a8bda53.html)
Cong Ty TNHH FIRE PHOENIX
-
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
**siêu**thị - Trung thực, tỉ mỉ, cẩn thận - Kiểm đếm thu tiền và thối tiền rõ ràng & chính xác, cất vào tủ theo từng loại tiền...
[Nhân Viên Kinh Doanh - Siêu Thị Aeon Mall Bình Dương](/job/9d3d6dcce5672de5e554dcff6e200873.html)
Cong ty TNHH Fire Phoenix
-
[Bình Dương](/viec-lam-tai-binh-duong-121874.html)
- 200 $ một tháng
**siêu**thị. - Nhận hồ sơ trực tiếp tại 258 Nam Kỳ Khởi Nghĩa, P. 8, Q...
**siêu**âm Ưu tiên có kinh nghiệm trong lĩnh vực **siêu**âm. Quyền... nghiệm trong lĩnh vực **siêu**âm. Hồ sơ bao gồm: Đầy đủ. Hạn nộp hồ sơ 31-07-2013 (Đã hết hạn) Ngôn ngữ hồ sơ Bất kỳ...

WARC-Type: response

Content-Type: application/http; msgtype=response

Server: Apache

Vary: Accept-Encoding,User-Agent

Content-Encoding: gzip

Content-Language: vi

Connection: close

Content-Type: text/html; charset=UTF-8


text:
Chuyên Smartphone Samsung , Htc , Sony , LG, SKy pantech, iPhone , iPad , Máy tính bảng các loại . KM cực shock tặng sạc dự phòng + flipcover +miếng dán khi mua máy tại Bích Ngọc.Hotline: (08)22299953
Blackberry-iPad-iPhone-Macbook bảo hàng 24 tháng (FPT)-iPod-Macbook 2013-iMac-LOA+TAI NGHE JBL-HARMAN KARDON-BOSE-BEATS-PLANTRONIC-MOTOROLA-INCASE-Cài đặt- sữa chữa. Hotline: Mr Duy: 0932.868686
Đẹp Mê Ly.com - chuyên Sky, chuyên DT Hàn Quốc, chuyên Docomo Softbank Au, chuyên DT Nhật. Showroom tuyệt vời, trải nghiệm ngồi bệt. Giá luôn rẻ nhất. Ở đâu có models gì DML có đó.
Đăng 13:42 23/12/2013 (sửa 13:49 17/09/2014) bởi nuihunghung (Thành Viên Mới) trong Thú cưng
(Hào Tô Hiệu) Chuyên mua bán và nhận phối giống chihuahua hàng vip. Giá : Từ 2 triệu -> 3 triệu / 2 lần Liên hệ : 0909828828 (Hào) Địa chỉ : 65 - 67 Tô Hiệu P. Hiệp Tân Q. Tân Phú (gần Đầm Sen) Chó con Đ ực gi ống :
www.5giay.vn/showthread.php?t=7138808 | Xem: 3.479 | Trả lời: 10 | Đã cache
Đăng 15:55 07/09/2014 (sửa 17:07 17/09/2014) bởi adnco (Thành Viên Cấp 4) trong Thú cưng
Ông bạn nhờ đăng bán dùm em chihuahua cái 12 tháng siêu mini thuần chủng 100 %chưa đẻ lứa nào . em mới thay lông xong chuẩn bị lên giống. Sức khỏe tốt không bệnh tật gì vì chó nhà nuôi. Này ông sắp xuất cảnh nên nhờ bán dùm. Em chihuahua: video: <br> fix mạnh cho anh em quan tâm ĐT: 0922.076.076
www.5giay.vn/showthread.php?t=7503394 | Xem: 459 | Trả lời: 6 | Đã cache
Đăng 16:59 16/09/2014 bởi ntn892003 (Thành Viên Cấp 4) trong Thú cưng
nhà dì mình đang cần đưa các bé chihuahua về nhà mới , chó sinh sản tại nhà nên đảm bảo về sức khỏe , đả tiêm ngừa 1 mũi care 6 bệnh . các bé được 2 tháng tuổi . gồm 1 em đực đen vàng , 2 em màu vàng đực . địa chỉ xem cún : 320 nguyễn duy trinh, quận 2 đt : 0935448711 ( nhân ) giá : 1,5 triệu /1 em
www.5giay.vn/showthread.php?t=7515190 | Xem: 115 | Trả lời: 3 | Đã cache
Đăng 22:03 09/07/2014 (sửa 00:21 16/09/2014) bởi nga.hocmon99 (Thành Viên Cấp 2) trong Thú cưng
Cô Nga chuyên cung cấp phối giống Chihuahua-Yorkshire-Toy Poodle Tacken - Cocker Thuần Chủng. . ....Chuyên cung cấp chó giống , chó bầu,chia sẽ kinh nghiệm nhiệt tình cho mấy bạn muốn mở trại hay mới tập tành bán ko giấu nghề " Trại chó cô Nga luôn để sức khoẻ đi đầu " Và Đây Là Trại Chó Nhà E Các
www.5giay.vn/showthread.php?t=7427029 | Xem: 1.253 | Trả lời: 11 | Đã cache
Đăng 15:42 15/09/2014 bởi R E No0o (Thành Viên Cấp 3) trong Thú cưng
Tình hình là mình cần bán vài em Chihuahua Đức (Bố Chihuahua + Mẹ chó Đức) trông rất đáng yêu, dễ thương và cực kỳ lanh lợi nhé các bạn. Ai đã nuôi dòng chó thông minh này thì đều biết rồi mình không cần nói thêm nhiều... nay cần tìm chủ mới cho mấy em nó. Chó đã chích ngừa đầy đủ, ăn uống bình
www.5giay.vn/showthread.php?t=7513726 | Xem: 257 | Trả lời: 5 | Đã cache
Đăng 14:03 13/10/2013 (sửa 21:13 15/09/2014) bởi chidat212 (Thành Viên Mới) trong Thú cưng
Shop chuyên mua bán chó Chihuahua , Pug , Yorkshire đêy !~ _ Shop mình có bán chó con các loại Chihuahua gồm mini , đen vàng , trắng kem , trắng ..... _ Pug gồm màu xám, trắng ,..... _ Ngoài ra shop mình còn có mèo , Giỏ xách chó , nhà ngủ , quần áo đủ size nhé _ Kèm theo đó shop mình có nhận phối
www.5giay.vn/showthread.php?t=7006080 | Xem: 1.475 | Trả lời: 9 | Đã cache
Đăng 15:46 05/08/2014 (sửa 15:48 15/09/2014) bởi R E No0o (Thành Viên Cấp 3) trong Thú cưng
Đã xong. Thanks !
www.5giay.vn/showthread.php?t=7461560 | Xem: 2.033 | Trả lời: 12 | Đã cache
Đăng 09:23 14/09/2014 (sửa 09:29 14/09/2014) bởi lamsang80 (Thành Viên Cấp 2) trong Thú cưng
Cần thanh lý hoặc đổi chó lạp xưởng ( dachshund , tacken ) lấy các pet sau : mèo Anh, Chihuahua hoặc gà vảy cá các bé sinh ngày 16/07/2014 Liên Hệ Mr Lâm O9O3.977.OO6 ĐChỉ F.15, Q.8, Tp.HCM
www.5giay.vn/showthread.php?t=7511980 | Xem: 389 | Trả lời: 8 | Đã cache
Đăng 15:14 14/09/2014 bởi hoanghuuvinh (Thành Viên Mới) trong Thú cưng
Tình hình là chó nhà mình sanh được 2 pé chihuahua màu trắng[1đực và 1 cái],đả xổ lãi.Đây là giống heo lùn,rất dễ thương,lanh lợi.Nhưng vì ko có thời gian chăm sóc pé muốn để lại cho ace nào có thiện ý,thương yêu mấy pé.Chó nhà nuôi nên ace mình cứ yên tâm về sức khỏe của pé.chó cha,chó mẹ ở nhà
www.5giay.vn/showthread.php?t=7512413 | Xem: 132 | Trả lời: 2 | Đã cache
Đăng 23:07 14/09/2014 bởi tanhungdtdd (Thành Viên Cấp 3) trong Thú cưng
Bầy chihuahua sinh ngày 24.07.2014 , mấy đứa đả lớn , bao gồm 2 cái 1 đực , đực màu trắng xem hình ... xíu nha , bố nó chưa tới 1kg , clip mấy bé : ** bé chó mẹ đẻ được 2 lứa , 1 lứa 5 con 1 lứa 3 con ... lắm giá 2.500.000đ Mọi thông tin lhệ vs sđt 0968186828 gặp Đạt xem chó tại 705/6 phạm thế hiển f4
www.5giay.vn/showthread.php?t=7512792 | Xem: 167 | Trả lời: 3 | Đã cache
Đăng 16:34 12/07/2014 (sửa 01:57 13/09/2014) bởi Tiến-Q4 (Thành Viên Kim Cương) trong Thú cưng
- Thân chào ACE diễn đàn! - Hiện tại mình đang nuôi 02 con Chihuahua đực tên JET và BÒ , rất sung sức, sức khỏe tốt. Chó màu vàng kem, kem trắng. Nay mình lập topic này để nhận phối giống miễn phí cho ACE có kinh tế khó khăn mà muốn chơi dòng Chihuahua thuần chủng. ACE chỉ cần gửi 300k/1 lần (tiền
www.5giay.vn/showthread.php?t=7430646 | Xem: 3.924 | Trả lời: 20 | Đã cache
Đăng 10:31 01/09/2014 (sửa 21:19 12/09/2014) bởi hoangvanminh (Thành Viên Mới) trong Thú cưng
chào anh em mình cần tìm chủ mới cho các bé 3 bé em cún màu vàng và một em đen tuyền 1 cái hai đưc nhé các bé dc gần hai tháng rui đã sổ lãi các bé đã biết ăn cơm rùi và đi vệ sinh biết kêu k đi trong ...
www.5giay.vn/showthread.php?t=7496273 | Xem: 687 | Trả lời: 3 | Đã cache
Đăng 17:47 10/09/2014 bởi poseidon.neptune (Thành Viên Cấp 1) trong Thú cưng
Nhà có em bé,nên không thể nuôi được nữa, mình cần bán cho những anh chị em nào đam mê! Chó Chihuahua: +giới tính: đực +cân nặng: 3kg +tuổi: 3 tuổi +lanh lẹ, thông minh, không đi vệ sinh bậy, ngoan .... +lanh lẹ,không bệnh,đã đẻ trứng nhiều. +hình ảnh -Giá: Chó: 1tr4 Chim: 500k trọn bộ -Địa chỉ: Hoàng
www.5giay.vn/showthread.php?t=7507572 | Xem: 397 | Trả lời: 4 | Đã cache
Đăng 21:29 10/09/2014 bởi minhchau75 (Thành Viên Mới) trong Thú cưng
Chó chihuahua nhà đẻ,bé cái sinh ngày 8/7/2014 dòng heo lùn lưng đôi phom mini bỏ vừa ly nước,bỏ túi đi chơi được,chích ngừa và sổ lãi lần 1 rồi ACE nào yêu thích xin liên lạc chú Thắng:0908599300 khu nhà ở nam hòa p phước long a q9
www.5giay.vn/showthread.php?t=7507799 | Xem: 69 | Trả lời: 2 | Đã cache
Đăng 23:11 13/08/2014 (sửa 22:14 08/09/2014) bởi kinglu (Thành Viên Bạch Kim) trong Thú cưng
Bán chó chihuahua con thuần chuẩn mini và heo lùn Chó nhà nuôi sinh được 2 bầy 8 con khõe mạnh bụ bẩm, đã bán được 4 con Cần rã bầy chihuahua thuần chủng mini và heo lùn, các bé đã tròn 2 tháng, đã ... không chăm sóc được nên bán bớt 2 con chó chihuahua đực giống gần 2 năm tuổi đã phối giống rồi . giá
www.5giay.vn/showthread.php?t=7473020 | Xem: 1.785 | Trả lời: 10 | Đã cache

markdown:
Kết quả
**1** - **15** trong khoảng **2.309**. ( **0,06** giây)
Chuyên Smartphone Samsung , Htc , Sony , LG, SKy pantech, iPhone , iPad , Máy tính bảng các loại . KM cực shock tặng sạc dự phòng + flipcover +miếng dán khi mua máy tại Bích Ngọc.Hotline: (08)22299953
Blackberry-iPad-iPhone-Macbook bảo hàng 24 tháng (FPT)-iPod-Macbook 2013-iMac-LOA+TAI NGHE JBL-HARMAN KARDON-BOSE-BEATS-PLANTRONIC-MOTOROLA-INCASE-Cài đặt- sữa chữa. Hotline: Mr Duy: 0932.868686
Đẹp Mê Ly.com - chuyên Sky, chuyên DT Hàn Quốc, chuyên Docomo Softbank Au, chuyên DT Nhật. Showroom tuyệt vời, trải nghiệm ngồi bệt. Giá luôn rẻ nhất. Ở đâu có models gì DML có đó.
Đăng 13:42 23/12/2013 (sửa 13:49 17/09/2014) bởi
[nuihunghung](http://www.5giay.vn/member.php?u=100994881) (Thành Viên Mới) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
(Hào Tô Hiệu) Chuyên mua bán và nhận phối giống
**chihuahua** hàng vip.
Giá : Từ 2 triệu -> 3 triệu / 2 lần
Liên hệ : 0909828828 (Hào)
Địa chỉ : 65 - 67 Tô Hiệu P. Hiệp Tân Q. Tân Phú (gần Đầm Sen)
**Chó** con
Đ ực gi ống : [www.5giay.vn/showthread.php?t=7138808](http://www.5giay.vn/showthread.php?t=7138808) | Xem: 3.479 | Trả lời: 10 | [Đã cache](detail.aspx?t=7138808)
Đăng 15:55 07/09/2014 (sửa 17:07 17/09/2014) bởi
[adnco](http://www.5giay.vn/member.php?u=100256797) (Thành Viên Cấp 4) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
Ông bạn nhờ đăng bán dùm em
**chihuahua** cái 12 tháng siêu mini thuần chủng 100 %chưa đẻ lứa nào .
em mới thay lông xong chuẩn bị lên giống.
Sức khỏe tốt không bệnh tật gì vì **chó** nhà nuôi.
Này ông sắp xuất cảnh nên nhờ bán dùm.
Em **chihuahua**:
video:
<br>
fix mạnh cho anh em quan tâm
ĐT: 0922.076.076 [www.5giay.vn/showthread.php?t=7503394](http://www.5giay.vn/showthread.php?t=7503394) | Xem: 459 | Trả lời: 6 | [Đã cache](detail.aspx?t=7503394)
Đăng 16:59 16/09/2014 bởi
[ntn892003](http://www.5giay.vn/member.php?u=100091826) (Thành Viên Cấp 4) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
nhà dì mình đang cần đưa các bé
**chihuahua** về nhà mới , **chó** sinh sản tại nhà nên đảm bảo về sức khỏe , đả tiêm ngừa 1 mũi care 6 bệnh . các bé được 2 tháng tuổi . gồm 1 em đực đen vàng , 2 em màu vàng đực .
địa chỉ xem cún : 320 nguyễn duy trinh, quận 2
đt : 0935448711 ( nhân )
giá : 1,5 triệu /1 em [www.5giay.vn/showthread.php?t=7515190](http://www.5giay.vn/showthread.php?t=7515190) | Xem: 115 | Trả lời: 3 | [Đã cache](detail.aspx?t=7515190)
Đăng 22:03 09/07/2014 (sửa 00:21 16/09/2014) bởi
[nga.hocmon99](http://www.5giay.vn/member.php?u=100869240) (Thành Viên Cấp 2) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
Cô Nga chuyên cung cấp phối giống
**Chihuahua**-Yorkshire-Toy Poodle Tacken - Cocker Thuần Chủng.
. ....Chuyên cung cấp **chó** giống , **chó** bầu,chia sẽ kinh nghiệm nhiệt tình cho mấy bạn muốn mở trại hay mới tập tành bán ko giấu nghề
" Trại **chó** cô Nga luôn để sức khoẻ đi đầu "
Và Đây Là Trại **Chó** Nhà E Các [www.5giay.vn/showthread.php?t=7427029](http://www.5giay.vn/showthread.php?t=7427029) | Xem: 1.253 | Trả lời: 11 | [Đã cache](detail.aspx?t=7427029)
Đăng 15:42 15/09/2014 bởi
[R E No0o](http://www.5giay.vn/member.php?u=100168261) (Thành Viên Cấp 3) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
Tình hình là mình cần bán vài em
**Chihuahua** Đức (Bố **Chihuahua** + Mẹ **chó** Đức) trông rất đáng yêu, dễ thương và cực kỳ lanh lợi nhé các bạn. Ai đã nuôi dòng **chó** thông minh này thì đều biết rồi mình không cần nói thêm nhiều... nay cần tìm chủ mới cho mấy em nó.
**Chó** đã chích ngừa đầy đủ, ăn uống bình [www.5giay.vn/showthread.php?t=7513726](http://www.5giay.vn/showthread.php?t=7513726) | Xem: 257 | Trả lời: 5 | [Đã cache](detail.aspx?t=7513726)
Đăng 14:03 13/10/2013 (sửa 21:13 15/09/2014) bởi
[chidat212](http://www.5giay.vn/member.php?u=101154552) (Thành Viên Mới) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
Shop chuyên mua bán
**chó Chihuahua** , Pug , Yorkshire đêy !~
_ Shop mình có bán **chó** con các loại **Chihuahua** gồm mini , đen vàng , trắng kem , trắng .....
_ Pug gồm màu xám, trắng ,.....
_ Ngoài ra shop mình còn có mèo , Giỏ xách **chó** , nhà ngủ , quần áo đủ size nhé
_ Kèm theo đó shop mình có nhận phối [www.5giay.vn/showthread.php?t=7006080](http://www.5giay.vn/showthread.php?t=7006080) | Xem: 1.475 | Trả lời: 9 | [Đã cache](detail.aspx?t=7006080)
Đăng 15:46 05/08/2014 (sửa 15:48 15/09/2014) bởi
[R E No0o](http://www.5giay.vn/member.php?u=100168261) (Thành Viên Cấp 3) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
Đã xong. Thanks !
[www.5giay.vn/showthread.php?t=7461560](http://www.5giay.vn/showthread.php?t=7461560) | Xem: 2.033 | Trả lời: 12 | [Đã cache](detail.aspx?t=7461560)
Đăng 09:23 14/09/2014 (sửa 09:29 14/09/2014) bởi
[lamsang80](http://www.5giay.vn/member.php?u=100044009) (Thành Viên Cấp 2) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
Cần thanh lý hoặc đổi
**chó** lạp xưởng ( dachshund , tacken ) lấy các pet sau : mèo Anh, **Chihuahua** hoặc gà vảy cá
các bé sinh ngày 16/07/2014
Liên Hệ Mr Lâm O9O3.977.OO6 ĐChỉ F.15, Q.8, Tp.HCM [www.5giay.vn/showthread.php?t=7511980](http://www.5giay.vn/showthread.php?t=7511980) | Xem: 389 | Trả lời: 8 | [Đã cache](detail.aspx?t=7511980)
Đăng 15:14 14/09/2014 bởi
[hoanghuuvinh](http://www.5giay.vn/member.php?u=101489329) (Thành Viên Mới) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
Tình hình là
**chó** nhà mình sanh được 2 pé **chihuahua** màu trắng[1đực và 1 cái],đả xổ lãi.Đây là giống heo lùn,rất dễ thương,lanh lợi.Nhưng vì ko có thời gian chăm sóc pé muốn để lại cho ace nào có thiện ý,thương yêu mấy pé.Chó nhà nuôi nên ace mình cứ yên tâm về sức khỏe của pé.chó cha, **chó** mẹ ở nhà [www.5giay.vn/showthread.php?t=7512413](http://www.5giay.vn/showthread.php?t=7512413) | Xem: 132 | Trả lời: 2 | [Đã cache](detail.aspx?t=7512413)
Đăng 23:07 14/09/2014 bởi
[tanhungdtdd](http://www.5giay.vn/member.php?u=100800257) (Thành Viên Cấp 3) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
Bầy
**chihuahua** sinh ngày 24.07.2014 , mấy đứa đả lớn , bao gồm 2 cái 1 đực , đực màu trắng xem hình ... xíu nha , bố nó chưa tới 1kg ,
clip mấy bé :
** bé **chó** mẹ đẻ được 2 lứa , 1 lứa 5 con 1 lứa 3 con ... lắm giá 2.500.000đ
Mọi thông tin lhệ vs sđt 0968186828 gặp Đạt xem **chó** tại 705/6 phạm thế hiển f4 [www.5giay.vn/showthread.php?t=7512792](http://www.5giay.vn/showthread.php?t=7512792) | Xem: 167 | Trả lời: 3 | [Đã cache](detail.aspx?t=7512792)
Đăng 16:34 12/07/2014 (sửa 01:57 13/09/2014) bởi
[Tiến-Q4](http://www.5giay.vn/member.php?u=100419621) (Thành Viên Kim Cương) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
- Thân chào ACE diễn đàn!
- Hiện tại mình đang nuôi 02 con
**Chihuahua** đực tên JET và BÒ , rất sung sức, sức khỏe tốt. **Chó** màu vàng kem, kem trắng. Nay mình lập topic này để nhận phối giống miễn phí cho ACE có kinh tế khó khăn mà muốn chơi dòng **Chihuahua** thuần chủng. ACE chỉ cần gửi 300k/1 lần (tiền [www.5giay.vn/showthread.php?t=7430646](http://www.5giay.vn/showthread.php?t=7430646) | Xem: 3.924 | Trả lời: 20 | [Đã cache](detail.aspx?t=7430646)
Đăng 10:31 01/09/2014 (sửa 21:19 12/09/2014) bởi
[hoangvanminh](http://www.5giay.vn/member.php?u=101524560) (Thành Viên Mới) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
chào anh em mình cần tìm chủ mới cho các bé 3 bé em cún màu vàng và một em đen tuyền 1 cái hai đưc nhé các bé dc gần hai tháng rui đã sổ lãi các bé đã biết ăn cơm rùi và đi vệ sinh biết kêu k đi trong ...
[www.5giay.vn/showthread.php?t=7496273](http://www.5giay.vn/showthread.php?t=7496273) | Xem: 687 | Trả lời: 3 | [Đã cache](detail.aspx?t=7496273)
Đăng 17:47 10/09/2014 bởi
[poseidon.neptune](http://www.5giay.vn/member.php?u=100066208) (Thành Viên Cấp 1) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
Nhà có em bé,nên không thể nuôi được nữa, mình cần bán cho những anh chị em nào đam mê!
**Chó Chihuahua**:
+giới tính: đực
+cân nặng: 3kg
+tuổi: 3 tuổi
+lanh lẹ, thông minh, không đi vệ sinh bậy, ngoan ....
+lanh lẹ,không bệnh,đã đẻ trứng nhiều.
+hình ảnh
-Giá:
**Chó**: 1tr4
Chim: 500k trọn bộ
-Địa chỉ: Hoàng [www.5giay.vn/showthread.php?t=7507572](http://www.5giay.vn/showthread.php?t=7507572) | Xem: 397 | Trả lời: 4 | [Đã cache](detail.aspx?t=7507572)
Đăng 21:29 10/09/2014 bởi
[minhchau75](http://www.5giay.vn/member.php?u=100886465) (Thành Viên Mới) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41) **Chó chihuahua** nhà đẻ,bé cái sinh ngày 8/7/2014 dòng heo lùn lưng đôi phom mini bỏ vừa ly nước,bỏ túi đi chơi được,chích ngừa và sổ lãi lần 1 rồi ACE nào yêu thích xin liên lạc chú Thắng:0908599300 khu nhà ở nam hòa p phước long a q9 [www.5giay.vn/showthread.php?t=7507799](http://www.5giay.vn/showthread.php?t=7507799) | Xem: 69 | Trả lời: 2 | [Đã cache](detail.aspx?t=7507799)
Đăng 23:11 13/08/2014 (sửa 22:14 08/09/2014) bởi
[kinglu](http://www.5giay.vn/member.php?u=22258) (Thành Viên Bạch Kim) trong [Thú cưng](http://www.5giay.vn/forumdisplay.php?f=41)
Bán
**chó chihuahua** con thuần chuẩn mini và heo lùn
**Chó** nhà nuôi sinh được 2 bầy 8 con khõe mạnh bụ bẩm, đã bán được 4 con
Cần rã bầy **chihuahua** thuần chủng mini và heo lùn, các bé đã tròn 2 tháng, đã ... không chăm sóc được nên bán bớt 2 con **chó chihuahua** đực giống gần 2 năm tuổi đã phối giống rồi .
giá [www.5giay.vn/showthread.php?t=7473020](http://www.5giay.vn/showthread.php?t=7473020) | Xem: 1.785 | Trả lời: 10 | [Đã cache](detail.aspx?t=7473020)

Content-Type: text/html; charset=utf-8

Vary: Accept-Encoding

Cache-Control: private

Server: Nhat Nguyet Websphere 12.3 build 3.456.234.2600


text:
Nhập môn
REST định nghĩa các quy tắc kiến trúc để bạn thiết kế Web services chú trọng vào tài nguyên hệ thống, bao gồm các trạng thái tài nguyên được định dạng như thế nào và được chuyển tải qua HTTP thông qua số lượng lớn người dùng và được viết bởi những ngôn ngữ khác nhau. Nếu tính theo số dịch vụ mạng sử dụng, REST đã nổi lên trong vài năm qua như là một mô hình thiết kế dịch vụ chiếm ưu thế. Trong thực tế, REST đã có những ảnh hưởng lớn và gần như thay thế SOAP và WSDL vì nó đơn giản và dễ sử dụng hơn rất nhiều.
REST không thu hút được nhiều sự chú ý khi lần đầu tiên giới thiệu vào năm 2000 bởi Roy Fielding trong luận án của ông "Architectural Styles and the Design of Network-based Software Architectures" (Phong cách kiến trúc và thiết kế kiến trúc phần mềm dựa trên mạng) tại Đại học California. Luận án đã phân tích một loạt các nguyên tắc kiến trúc phần mềm sử dụng Web như là một nền tảng tính toán phân tán (xem Tài nguyên liên kết tới luận án). Đến nay, vài năm sau đó, đã xuất hiện các framework chủ đạo cho REST và chúng vẫn đang được tiếp tục phát triển, nó đang được xem xét để đưa vào trong bộ Java™ 6 thông qua tiêu chuẩn JSR-311.
Bài viết này chỉ ra rằng khi REST được biết đến nhiều hơn thì việc cụ thể hóa một Web service REST sẽ tuân thủ theo bốn nguyên tắc thiết kế cơ bản sau:
- Sử dụng các phương thức HTTP một cách rõ ràng
- Phi trạng thái
- Hiển thị cấu trúc thư mục như URls
- Chuyển đổi JavaScript Object Notation (JSON) và XML hoặc cả hai.
Các phần sau đây sẽ mở rộng dựa trên bốn nguyên lý này và đề xuất một nhân tố kỹ thuật cơ bản giải thích vì sao chúng quan trọng đối với các nhà thiết kế dịch vụ mạng REST.
Sử dụng các phương thức HTTP một cách rõ ràng
Một đặc tính quan trọng của dịch Web service RESTful là sử dụng một cách rõ ràng các phương thức HTTP theo cách một giao thức được xác định bởi RFC 2616. Ví dụ HTTP GET được xác định như là một phương thức sinh ra số liệu được sử dụng có chủ đích bởi các ứng dụng người dùng để thu thập tài nguyên, dữ liệu từ một máy chủ, hoặc thực thi một truy vấn mà máy chủ sẽ tìm kiếm và phản hồi cùng với một gói thông tin tương thích.
REST yêu cầu các nhà phát triển sử dụng phương thức HTTP một cách rõ ràng theo cách tương thích với giao thức chuẩn. Nguyên lý thiết kế REST cơ bản này thiết lập một ánh xạ 1-1 giữa các hành động tạo, đọc, cập nhật và xoá (CRUD) các quá trình vận hành và các phương thức HTTP. Theo cách ánh xạ này thì:
- Để tạo một tài nguyên trên máy chủ, bạn cần sử dụng phương thức POST.
- Để truy xuất một tài nguyên, sử dụng GET.
- Để thay đổi trạng thái một tài nguyên hoặc để cập nhật nó, sử dụng PUT.
- Để huỷ bỏ hoặc xoá một tài nguyên, sử dụng DELETE.
Một lỗ hổng trong thiết kế vốn có trong các Web API là việc sử dụng các phương
thức HTTP mà không có mục đích trước. Ví dụ lệnh URI trong một lệnh HTTP GET thường
xác định một tài nguyên cụ thể. Hoặc một chuỗi truy vấn trong một lệnh URI bao gồm
một nhóm các tham số xác định tiêu chí tìm kiếm được máy chủ sử dụng để tìm các tài
nguyên phù hợp. Ít nhất điều này cho thấy HTTP/1.1 miêu tả GET như thế nào. Nhưng có
nhiều trường hợp Web APIs không được tốt lắm, do sử dụng HTTP GET để khởi động một
vài tác vụ trên máy chủ — ví dụ, thêm các bản ghi vào một cơ sở dữ
liệu. Trong các trường hợp này, phương thức GET-yêu-cầu-URI đã không được sử dụng
đúng đắn hoặc chưa sử dụng đầy đủ. Nếu Web API sử dụng GET để tiến hành các thủ tục
ra lệnh từ xa thì nó sẽ có dạng như sau:
GET
/adduser?name=Robert HTTP/1.1
Đây không phải là mẫu thiết kế hấp dẫn vì phương pháp nói trên hỗ trợ phương thức thay đổi trạng thái trên HTTP GET. Nói cách khác, phương thức yêu cầu HTTP GET nói trên có những tác động phụ. Nếu được xử lý thành công, kết quả của yêu cầu (trong ví dụ này) là để tạo thêm một người dùng mới vào kho dữ liệu. Vấn đề ở đây chỉ về mặt ngữ nghĩa. Các Web server được thiết kế để phản hồi lại các yêu cầu HTTP GET bằng cách truy vấn dữ liệu phù hợp với đường dẫn (hoặc câu truy vấn) theo URI và phản hồi những dữ liệu này hoặc những thông tin đại diện, chứ không phải để thêm một dữ liệu vào database. Từ góc độ mục đích sử dụng giao thức đó và theo tiêu chuẩn Web server HTTP/1.1 thì việc sử dụng GET theo cách này tồn tại mâu thuẫn.
Về mặt ngữ nghĩa, có nhiều vấn đề khi sử dụng GET là để khởi động một sự xoá bỏ, sửa đổi, hoặc ghi thêm vào cơ sở dữ liệu, hoặc để thay đổi trạng thái máy chủ theo một cách nào đó. Nó dùng các công cụ Web cache (các đường dẫn) và các công cụ tìm kiếm để làm thay đổi máy chủ một cách không chủ định thông qua đường dẫn. Một cách đơn giản để vượt qua vấn đề hay xảy ra này là di chuyển tên và giá trị các tham số yêu cầu trên URI vào các thẻ XML. Các thẻ kết quả, một đại diện XML của một chủ thể được tạo ra, có thể được gửi vào một nhóm HTTP POST, những nơi mà yêu cầu URI là chủ thể sinh ra có chủ đích (xem ví dụ 1 và 2).
Ví dụ 1. Trước
GET /adduser?name=Robert HTTP/1.1
Ví dụ 2. Sau
POST /users HTTP/1.1 Host: myserver Content-Type: application/xml <?xml version="1.0"?> <user> <name>Robert</name> </user>
Phương
pháp trên là ví dụ của yêu cầu RESTful: sử dụng đúng HTTP POST và bao gồm cả tải
trọng trong phần thân câu lệnh. Đối với phía đầu tiếp nhận, câu lệnh có thể được xử
lý bằng cách thêm tài nguyên vào hệ thống đó như một phần tài nguyên phụ được định
dạng trong lệnh URI; trong trường hợp này tài nguyên mới phải được thêm vào như là
một nhánh con của
/users. Quan hệ bao hàm giữa thực thể
mới và nhánh cha, như đã xác định trong yêu cầu POST, tương tự như cách tệp đã thuộc
thư mục cha. Máy khách thiết lập quan hệ giữa thực thể và nhánh cha, và xác định URI
của thực thể mới trong yêu cầu POST.
Ứng dụng máy khách sau đó có thể nhận
kết nối của nguồn sử dụng URI mới, lưu ý rằng ít nhất về mặt logic, nguồn được đặt
dưới
/users, như trong ví dụ
3.
Ví dụ 3. Lệnh HTTP GET
GET /users/Robert HTTP/1.1 Host: myserver Accept: application/xml
Sử dụng GET theo cách này rất rõ ràng vì GET chỉ dành cho truy cập dữ liệu. GET là một phương thức mà không có hiệu ứng phụ, như là một đặc tính riêng không thay đổi giá trị.
Tương tự, những thay đổi của phương thức Web cũng cần được ứng dụng trong các trường hợp khi một thao tác cập nhật được hỗ trợ qua HTTP GET, như thể hiện trong ví dụ 4.
Ví dụ 4. Thực hiện lệnh Cập nhật thông qua HTTP GET
GET /updateuser?name=Robert&newname=Bob HTTP/1.1
Câu
lệnh này thay đổi thuộc tính (hoặc đặc tính)
name của dữ
liệu. Có thể dùng chuỗi truy vấn (query) để dùng cho những thao tác như thế này, và
ví dụ 4 là một ví dụ đơn giản, mẫu phương-pháp-dấu-hiệu-như-là-chuỗi-truy-vấn
(query-string-as-method-signature) có thể không hoạt động khi sử dụng đối với các
thao tác phức tạp hơn. Do mục tiêu của chúng ta là làm rõ việc sử dụng các phương
thức HTTP, nên cách tiếp cận RESTful là gửi một yêu cầu HTTP PUT để cập nhật tài
nguyên, thay vì HTTP GET, cho những lý do tương tự chỉ ra ở trên (xem ví dụ
5).
Ví dụ 5. Lệnh HTTP PUT
PUT /users/Robert HTTP/1.1 Host: myserver Content-Type: application/xml <?xml version="1.0"?> <user> <name>Bob</name> </user>
Sử
dụng PUT để thay đổi dữ liệu gốc, cho thấy cách làm rõ ràng hơn, phù hợp với các
nguyên lý của REST và các khái niệm của các phương thức HTTP. Lệnh PUT trong ví dụ 5
rõ ràng ở chỗ nó chỉ ra dữ liệu được cập nhật bằng cách xác định nó trong câu lệnh
URI, và nó chuyển một đại diện mới của các thuộc tính dữ liệu cần chuyển đổi như là
nhóm không chặt chẽ các tên tham số và giá trị trên lệnh URI. Ví dụ 5 cũng có hiệu
ứng từ việc đổi tên tài nguyên từ
Robert sang
Bob, và trong việc các thay đổi của URI sang
/users/Bob. Trong một dịch vụ mạng REST, lệnh tiếp theo của
tài nguyên sử dụng URI cũ sẽ sinh ra lỗi căn bản 404 Not Found.
Như là một
nguyên tắc thiết kế chung, nó giúp theo sát các hướng dẫn sử dụng REST để sử dụng
các phương pháp HTTP một cách rõ ràng bằng cách sử dụng các danh từ trong URIs thay
vì động từ. Trong một Web service RESTful, các động từ — POST, GET,
PUT, và DELETE — đã được định nghĩa bởi giao thức. Và tốt nhất, để
giữ giao diện được khái quát hoá và cho phép người dùng hiểu rõ các thao tác mà họ
gọi thì Web service không nên đưa ra nhiều động từ hoặc các thủ tục remote từ xa,
như
/adduser hoặc
/updateuser.
Nguyên tắc thiết kế chung này cũng áp dụng đối với phần thân câu lệnh HTTP, được sử
dụng có chủ ý để chuyển trạng thái tài nguyên, không mang tên của một phương thức
hay thủ tục remote từ xa.
Phi trạng thái
Các Web service REST cần được điều chỉnh về quy mô để đáp ứng được các yêu cầu ngày càng cao về chất lượng thực hiện. Các khu vực lưu trữ của máy chủ với khả năng cân bằng tải và vượt qua sự mất mát, các bức ngăn (tường lửa) và các cổng được sắp xếp theo một phương thức đặc thù nhằm tạo ra một cấu trúc dịch vụ bền vững cho phép chuyển tiếp yêu cầu từ một máy chủ tới máy chủ khác khi cần để giảm tổng thời gian phản hồi của một yêu cầu Web service. Sử dụng máy chủ trung gian nhằm nâng cao mức yêu cầu dịch vụ mạng REST của khách hàng để gửi các yêu cầu hoàn chỉnh và độc lập, có nghĩa là gửi các yêu cầu bao gồm tất cả dữ liệu cần thiết để đáp ứng sao cho các thành phần trong các máy chủ trung gian có thể gửi tiếp đi, gửi theo tuyến và cân bằng tải mà không cần các trạng thái được kiểm soát bên trong giữa các yêu cầu.
Một yêu cầu hoàn chỉnh, độc lập không đòi hỏi máy chủ để thu thập được bất kỳ ngữ cảnh hoặc trạng thái của ứng dụng nào trong lúc xử lý yêu cầu. Một ứng dụng (hoặc máy khách) Web service RESTchứa ở phần đầu và phần thân trang HTTP của một yêu cầu tất cả các tham số, ngữ cảnh và dữ liệu cần thiết bởi thành phần bên ngoài máy chủ để đưa ra một phản hồi. Phi trạng thái theo nghĩa này nâng cao tính hiệu quả của dịch vụ Web, đơn giản hoá thiết kế và sự thi hành của các thành phần của máy chủ vì khi máy chủ không có trạng thái sẽ huỷ bỏ nhu cầu để đồng bộ hoá các mảng dữ liệu với một ứng dụng bên ngoài.
Hình 1
minh hoạ một dịch vụ trạng thái, từ đó một ứng dụng có thể yêu cầu trang sau trong
một tập hợp các trang kết quả, giả sử rằng dịch vụ theo sát ứng dụng dừng lại ở nơi
trong khi điều chỉnh tập hợp đó. Đối với thiết kế trạng thái, dịch vụ gia tăng và
lưu giữ một
previousPage (trang trước) thay đổi ở nơi để
có thể phản hồi các lệnh tiếp theo.
Hình 1. Thiết kế trạng thái
Dịch vụ trạng thái như thế này trở nên phức tạp. Trong môi trường Nền tảng Java,
Phiên bản Doanh nghiệp (EE), dịch vụ trạng thái yêu cầu rất cẩn thận lúc ban đầu để
lưu trữ hiệu quả và cho phép đồng bộ hoá dữ liệu session (phiên làm việc) qua một hệ
thống container Java EE. Trong môi trường này, có một vấn đề quen thuộc đối với các
chuyên viên phát triển servlet/JavaServer Pages (JSP) và Enterprise JavaBeans (EJB),
những người này thường gặp khó khăn khi tìm gốc rễ nguyên nhân của
java.io.NotSerializableException trong khi tái tạo
session. Liệu nó được chuyển bởi thành phần chứa Servlet trong khi
HttpSession được tái tạo hoặc chuyển đi bởi thành phần
chứa EJB trong khi sao bản EJB trạng thái, đó là vấn đề mà có thể làm các chuyên
viên phát triển mất nhiều ngày để xác định mấu chốt một đối tượng mà không thực thi
Serializable, đôi khi trong một đồ thị phức tạp của
các đối tượng mà đóng góp nên trạng thái của máy chủ. Ngoài ra, phần tối ưu hoá làm
đội thêm chi phí ảnh hưởng đến hiệu quả của máy chủ.
Mặt khác, các thành phần máy chủ phi trạng thái ít phức tạp hơn để thiết kế, viết và phân bổ thông qua máy chủ được cân bằng tải. Dịch vụ phi trạng thái không chỉ hoạt động tốt hơn, nó còn chuyển hầu hết vai trò duy trì trạng thái sang ứng dụng ở máy khách. Trong một dịch vụ mạng RESTful, máy chủ chịu trách nhiệm đưa ra các phản hồi và cung cấp một giao diện cho phép máy khách duy trì trạng thái ứng dụng của chính nó. Ví dụ, trong yêu cầu tập hợp trang kết quả, máy khách sẽ gồm số trang thực tế khi truy xuất thay vì đơn giản chỉ là yêu cầu tiếp theo (xem hình 2).
Hình 2. Thiết kế phi trạng thái
Một dịch Web phi trạng thái sinh ra một phản hồi liên kết với số trang tiếp theo trong một tổng thể và để máy khách làm những gì mà nó cần để giữ giá trị này ở mức nhất định. Khía cạnh này của thiết kế dịch vụ Web RESTful có thể được tách thành hai phần trách nhiệm như là mức phân chia cao nhất mà chỉ rõ một dịch vụ phi trạng thái có thể được duy trì như thế nào.
Máy chủ
- Tạo ra các phản hồi bao gồm các đường dẫn tới nguồn tài nguyên cho phép các ứng dụng điều hướng giữa các tài nguyên liên quan. Loại phản hồi này nhúng các liên kết. Tương tự, nếu các yêu cầu đối với máy chủ hoặc các kho tài nguyên, thì các phản hồi RESTful Web service điển hình có thể bao gồm các đường dẫn đến các máy con hoặc các tài nguyên phụ sao cho những phản hồi này được duy trì kết nối.
- Tạo ra các phản hồi mà xác định chúng có thể lưu trữ hoặc không phải để nâng cao được hiệu quả bằng cách giảm số lượng yêu cầu đối với các tài nguyên trùng nhau và bằng cách loại trừ một vài yêu cầu toàn bộ. Máy chủ làm được như vậy bằng cách gộp một phản hồi phần đầu HTTP Last - Modified (lần sửa gần nhất) (giá trị ngày) và Cache-Control (bộ điều khiển lưu trữ).
Ứng dụng máy khách
- Sử dụng phần đầu phản hồi Cache-Control (bộ điều khiển lưu trữ tạm) để xác định lưu trữ tài nguyên (lập một vùng sao chép nội bộ) hay không. Máy khách cũng đọc phần đầu phản hồi Last-Modified (lần sửa gần nhất) và gửi lại giá trị ngày vào phần đầu If-Modified-Since (nếu-sửa) để truy vấn máy chủ xem tài nguyên có thay đổi không. Việc này được gọi là truy vấn có điều kiện, và hai phần đầu đi với nhau trong phản hồi của máy chủ là mã 304 chuẩn (không sửa đổi) và bỏ qua tài nguyên thực được yêu cầu nếu nó không thay đổi. Mã phản hồi HTTP 304 có nghĩa rằng máy khách có thể sử dụng an toàn một vùng sao lưu nội bộ, lưu giữ một bản sao mới nhất của tài nguyên đại diện, hiệu quả bằng cách vượt qua yêu cầu GET tiếp theo cho đến khi tài nguyên thay đổi.
- Gửi các yêu cầu hoàn chỉnh có thể được đáp ứng độc lập bởi các yêu cầu khác. Điều này đòi hỏi máy khách sử dụng toàn bộ các phần đầu HTTP như chỉ định bởi giao diện dịch vụ mạng và để gửi các đại diện tài nguyên hoàn chỉnh trong phần giữa của yêu cầu. Máy khách gửi yêu cầu lập một vài giả thuyết về các yêu cầu trước đó, sự tồn tại của một vùng của máy chủ, khả năng của máy chủ để thêm các ngữ cảnh vào yêu cầu, hoặc về các trạng thái ứng dụng mà được giữ giữa các yêu cầu.
Sự hợp tác này giữa ứng dụng máy khách và máy chủ là cần thiết để có một phi trạng thái trong một Web service RESful. Nó nâng cao hiệu quả bằng cách tiết kiệm băng thông và tối thiểu hoá trạng thái ứng dụng về phía máy chủ.
Đưa ra cấu trúc thư mục giống URIs
Từ điểm hiện có của tài nguyên địa chỉ ứng dụng máy khách, các đường dẫn xác định tính hiện thực của Web service REST như thế nào, và được sử dụng theo cách các chuyên viên thiết kế có thể tham gia. Tính năng thứ ba của Web service RESful về tất cả đường dẫn.
Các địa chỉ Web service REST nên có tính hiện thực theo nghĩa rằng chúng dễ dàng đối với người dùng. Có thể nghĩ rằng một địa chỉ đường dẫn như là giao diện tự đóng gói mà đòi hỏi ít lý giải hoặc tham chiếu, nếu có, đối với một nhà phát triển để hiểu nó nhắm đến điểm gì và phân phát tài nguyên liên quan. Cuối cùng, cấu trúc của một địa chỉ nên rõ ràng, có thể đoán được và dễ hiểu.
Một cách để đạt được mức độ sử dụng này là xác định cấu trúc thư mục
giống URIs. Loại URI này có thứ bậc, có điểm khởi nguồn tại một đường dẫn đơn giản,
và có nhánh đi ra là các nhánh phụ thể hiện các vùng chính của dịch vụ. Theo định
nghĩa này, một URI không chỉ là một chuỗi bị cắt không giới hạn, mà còn là một cây
với các nhánh chính và nhánh dọc nối với nhau tại các nút. Ví dụ, trong một thảo
luận dịch vụ nhỏ thu thập các chủ đề từ Java tới bài viết, bạn có thể định nghĩa một
tập hợp được cấu trúc bởi URIs giống như sau:
http://www.myservice.org/discussion/topics/{topic}
Phần gốc,
/discussion, có một nút
/topics
bên dưới nó. Phía dưới là một chuỗi tên các chủ đề, như chuyện xã hội, kỹ thuật,
v.v.., mỗi chủ đề chỉ ra một mạch thảo luận. Trong cấu trúc này, dễ dàng kéo các
mạch thảo luận bằng cách gõ một vài thứ sau /topics/.
Trong một vài trường hợp, đường dẫn tới một tài nguyên cho mượn chính nó đặc biệt tốt với cấu trúc giống cây thư mục. Ví dụ, tài nguyên được cấu trúc bởi ngày, điều mà phối hợp rất tốt để sử dụng một cú pháp phân cấp.
Ví dụ này trực quan vì nó dựa trên các nguyên
tắc:
http://www.myservice.org/discussion/2008/12/10/{topic}
Phần đầu
tiên trong đường dẫn là năm có bốn chữ số, phần thứ hai là ngày có hai chữ số, và
phần thứ ba là tháng có hai chữ số. Có vẻ hơi ngu ngốc khi giải thích theo cách này,
nhưng đây là mức độ đơn giản. Con người và máy móc có thể dễ dàng sinh ra các cấu
trúc URIs giống như vậy vì chúng dựa trên các nguyên tắc. Bổ sung vào các phần đường
dẫn trong các khe của một cú pháp làm cho chúng tốt hơn vì có một mẫu xác định từ đó
để soạn chúng.
http://www.myservice.org/discussion/{year}/{day}/{month}/{topic}
Một vài hướng dẫn bổ sung để lưu ý trong khi nói về cấu trúc địa chỉ của Web service RESTful là:
- Giấu các đuôi tài liệu mở rộng của bản gốc trong máy chủ (.jsp, .php, .asp), nếu có, vì vậy bạn có thể giấu một số thứ mà không cần thay đổi địa chỉ Urls.
- Để mọi thứ là chữ thường.
- Thay thế các khoảng trống bằng gạch chân hoặc hoặc gạch nối (một trong hai loại).
- Tránh các chuỗi yêu cầu càng nhiều càng tốt.
- Thay vì sử dụng mã (404 Not Found) khi yêu cầu địa chỉ cho một phần đường dẫn, luôn luôn cung cấp một trang mặc định hoặc tài nguyên như một phản hồi.
Các địa chỉ URIs nên giữ nguyên để khi tài nguyên thay đổi hoặc khi tiến hành thay đổi dịch vụ, đường liên kết cũng sẽ giữ nguyên. Việc này cho phép đánh dấu lại vị trí đang đọc. Nó cũng rất quan trọng vì mối liên quan giữa các tài nguyên mà được mã hoá trong các địa chỉ được giữ nguyên độc lập với các mối liên quan đại diện khi chúng được lưu trữ.
Chuyển đổi XML, JSON, hoặc cả hai
Một tài nguyên đại diện điển hình phản ánh trạng thái hiện tại của một tài nguyên, và các thuộc tính của nó, tại thời điểm một ứng dụng máy khách yêu cầu nó. Các đại diện tài nguyên theo nghĩa này là chỉ các bản tóm tắt lúc đó. Điều này có thể đơn giản như một đại diện của một bản ghi trong một cơ sở dữ liệu, bao gồm một tổng thể giữa tên các cột và các thẻ XML, nơi các giá trị thành phần trong XML bao gồm các giá trị dòng. Hoặc nếu hệ thống có một mô hình dữ liệu, thì theo định nghĩa này một tài nguyên đại diện là một bản tóm tắt các thuộc tính của những thứ trong mô hình dữ liệu hệ thống. Đây là những điều bạn muốn Web services REST mang đến.
Những trở ngại cuối cùng, đi kèm với thiết kế Web service RESTful, phải làm với định dạng dữ liệu mà ứng dụng và trao đổi dịch vụ trong mức đáp ứng yêu cầu/phản hồi hoặc trong phần thân của HTTP. Đây chính là điều nó làm để giữ mọi thứ đơn giản, có thể đọc được và kết nối được.
Các chủ thể trong mô hình dữ liệu của bạn thường liên quan đến nhau theo cách nào đó, và mối liên hệ giữa mô hình dữ liệu chủ thể (tài nguyên) nên được phản ánh theo cách chúng được đại diện để chuyển đến một ứng dụng máy khách. Trong dịch vụ chuỗi thảo luận, một ví dụ của đại diện tài nguyên được kết nối có thể bao gồm một chủ đề thảo luận gốc và các thuộc tính của nó, và các đường dẫn được nhúng vào các phản hồi nhất định của chủ đề đó.
Ví dụ 6. Đại diện XML của một chuỗi thảo luận
<?xml version="1.0"?> <discussion date="{date}" topic="{topic}"> <comment>{comment}</comment> <replies> <reply from="joe@mail.com" href="/discussion/topics/{topic}/joe"/> <reply from="bob@mail.com" href="/discussion/topics/{topic}/bob"/> </replies> </discussion>
Cuối cùng, để đưa đến khả năng yêu cầu loại nội dung cụ thể cho các ứng dụng máy khách mà phù hợp nhất với chúng, hãy cấu trúc dịch vụ của bạn sao cho nó tận dụng được phần đầu chấp nhận HTTP sẵn có bên trong, nơi giá trị của phần đầu là một loại MIME. Một vài loại MIME thông thường được sử dụng bởi dịch vụ RESTful được thể hiện trong Bảng 1.
Bảng 1. Loại MIME phổ biến được sử dụng bởi dịch vụ RESTful
Nó cho phép dịch vụ được nhiều khách hàng khác nhau sử dụng, viết bằng các ngôn ngữ khác nhau, chạy trên nền và thiết bị khác nhau. Sử dụng kiểu MIME và phần đầu HTTP Accept là một cơ chế được biết như là nội dung thương thuyết, cái mà cho phép máy khách chọn định dạng dữ liệu nào là đúng với chúng và tối thiểu hoá sự nối lại giữa dịch vụ và các ứng dụng mà sử dụng nó.
Kết luận
REST không phải là sự lựa chọn luôn đúng. Đã có trường hợp khi thiết kế Web service, nó có sự kém độc lập đối với phần mềm trung gian (ví dụ: một ứng dụng máy chủ) so với loại dựa trên SOAP hặc WSDL. Có nghĩa REST là một sự quay lại con đường mạng trước thời đại ứng dụng máy chủ rất lớn, kể cả ấn tượng các chuẩn của internet thời kỳ đầu, địa chỉ và HTTP. Bạn vừa nghiên cứu nguyên tắc gọi là thiết kế giao diện RESTful, XML so với HTTP là một giao diện vượt trội cho phép các ứng dụng bên trong, như các giao diện người dùng dựa trên Asynchronous JavaScript + XML (Ajax), dễ dàng kết nối, xác định, và tiêu thụ tài nguyên. Thực tế, sự tương thích lớn giữa Aax và REST đã nhận được rất nhiều sự chú ý gần đây.
Đưa một tài nguyên hệ thống thông qua một RESTful API là một cách linh động để cung cấp các loại ứng dụng khác nhau với dữ liệu đã được định dạng theo cách tiêu chuẩn. Nó giúp đáp ứng các yêu cầu tích hợp, điều rất quan trọng để xây dựng hệ thống khi dữ liệu được kết hợp dễ dàng (mashups) và để mở rộng hoặc xây dựng trên một gói hệ thống căn bản. Dịch vụ RESTful có thể rất lớn đối với một số thứ. Bài viết này hướng dẫn dựa vào nguyên lý cơ bản trên và hy vọng bằng cách nào đó sẽ khuyến khích bạn khám phá chủ đề này.
Tài nguyên
Học tập
- Đọc chương 5 luận án của Roy Fielding Architectural Styles and the Design of Network-based Software Architectures (Phong cách kiến trúc và thiết kế kiến trúc phần mềm dựa trên mạng)."
- Tìm thêm thông tin tại RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1
- Đọc sách RESTful Web Services.
- Địa chỉ SOA and Web services zone trên trang web của IBM developerWorks, đăng hàng trăm thông tin về các bài viết phong phú thông tin và các bài giảng về giới thiệu, trung cấp, hoặc cao cấp để làm sao phát triển ứng dụng dịch vụ mạng.
- Thực hành tại IBM SOA Sandbox! Nâng cao kỹ năng SOA của bạn thông qua thực hành, kinh nghiệm thực tế cùng với các bài nhập môn IBM SOA.
- Trang web IBM SOA đưa ra một tổng thể của SOA và làm thế nào IBM có thể giúp bạn ở đây.
- Hãy tham gia các sự kiện kỹ thuật developerWorks và web quảng bá .
- Tìm các sách cùng hoặc khác chủ đề kỹ thuật tại Hiệu sách Safari.
- Đọc thêm các tài liệu Web services on demand demo.
Lấy sản phẩm và công nghệ
- Tải về JSR 311: JAX-RS: The Java API for RESTful Web Services.
- Lấy Jersey (GlassFish).
- Tải về Restlet, the REST framework for Java.
- Tải về Phiên bản đánh giá sản phẩm của IBM và bạn có các công cụ phát triển ứng dụng và các phần mềm trung gian từ DB2®, Lotus®, Rational®, Tivoli®, and WebSphere®.
Thảo luận
- Tham gia vào cộng đồng các chuyên viên phát triển bằng cách gia nhập vào developerWorks blogs.
Bình luận
-
Vùng dữ liệu trên developerWorks
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
-
Vùng mã nguồn mở trên developerWorks
Xem các bài viết về HTML, CSS, JavaScript,...
-
Điện toán đám mây
Tìm hiểu về điện toán đám mây

markdown:
## Nhập môn
REST định nghĩa các quy tắc kiến trúc để bạn thiết kế Web services chú trọng vào tài nguyên hệ thống, bao gồm các trạng thái tài nguyên được định dạng như thế nào và được chuyển tải qua HTTP thông qua số lượng lớn người dùng và được viết bởi những ngôn ngữ khác nhau. Nếu tính theo số dịch vụ mạng sử dụng, REST đã nổi lên trong vài năm qua như là một mô hình thiết kế dịch vụ chiếm ưu thế. Trong thực tế, REST đã có những ảnh hưởng lớn và gần như thay thế SOAP và WSDL vì nó đơn giản và dễ sử dụng hơn rất nhiều.
REST không thu hút được nhiều sự chú ý khi lần đầu tiên giới thiệu vào
năm 2000 bởi Roy Fielding trong luận án của ông "Architectural Styles and the Design
of Network-based Software Architectures" (Phong cách kiến trúc và thiết kế kiến trúc
phần mềm dựa trên mạng) tại Đại học California. Luận án đã phân tích một loạt các
nguyên tắc kiến trúc phần mềm sử dụng Web như là một nền tảng tính toán phân tán
(xem
[Tài nguyên](#resources) liên kết tới luận án). Đến nay, vài năm sau
đó, đã xuất hiện các framework chủ đạo cho REST và chúng vẫn đang được tiếp tục phát
triển, nó đang được xem xét để đưa vào trong bộ Java™ 6 thông qua
tiêu chuẩn JSR-311.
Bài viết này chỉ ra rằng khi REST được biết đến nhiều hơn thì việc cụ thể hóa một Web service REST sẽ tuân thủ theo bốn nguyên tắc thiết kế cơ bản sau:
- Sử dụng các phương thức HTTP một cách rõ ràng
- Phi trạng thái
- Hiển thị cấu trúc thư mục như URls
- Chuyển đổi JavaScript Object Notation (JSON) và XML hoặc cả hai.
Các phần sau đây sẽ mở rộng dựa trên bốn nguyên lý này và đề xuất một nhân tố kỹ thuật cơ bản giải thích vì sao chúng quan trọng đối với các nhà thiết kế dịch vụ mạng REST.
## Sử dụng các phương thức HTTP một cách rõ ràng
Một đặc tính quan trọng của dịch Web service RESTful là sử dụng một cách rõ ràng các phương thức HTTP theo cách một giao thức được xác định bởi RFC 2616. Ví dụ HTTP GET được xác định như là một phương thức sinh ra số liệu được sử dụng có chủ đích bởi các ứng dụng người dùng để thu thập tài nguyên, dữ liệu từ một máy chủ, hoặc thực thi một truy vấn mà máy chủ sẽ tìm kiếm và phản hồi cùng với một gói thông tin tương thích.
REST yêu cầu các nhà phát triển sử dụng phương thức HTTP một cách rõ ràng theo cách tương thích với giao thức chuẩn. Nguyên lý thiết kế REST cơ bản này thiết lập một ánh xạ 1-1 giữa các hành động tạo, đọc, cập nhật và xoá (CRUD) các quá trình vận hành và các phương thức HTTP. Theo cách ánh xạ này thì:
- Để tạo một tài nguyên trên máy chủ, bạn cần sử dụng phương thức POST.
- Để truy xuất một tài nguyên, sử dụng GET.
- Để thay đổi trạng thái một tài nguyên hoặc để cập nhật nó, sử dụng PUT.
- Để huỷ bỏ hoặc xoá một tài nguyên, sử dụng DELETE.
Một lỗ hổng trong thiết kế vốn có trong các Web API là việc sử dụng các phương
thức HTTP mà không có mục đích trước. Ví dụ lệnh URI trong một lệnh HTTP GET thường
xác định một tài nguyên cụ thể. Hoặc một chuỗi truy vấn trong một lệnh URI bao gồm
một nhóm các tham số xác định tiêu chí tìm kiếm được máy chủ sử dụng để tìm các tài
nguyên phù hợp. Ít nhất điều này cho thấy HTTP/1.1 miêu tả GET như thế nào. Nhưng có
nhiều trường hợp Web APIs không được tốt lắm, do sử dụng HTTP GET để khởi động một
vài tác vụ trên máy chủ — ví dụ, thêm các bản ghi vào một cơ sở dữ
liệu. Trong các trường hợp này, phương thức GET-yêu-cầu-URI đã không được sử dụng
đúng đắn hoặc chưa sử dụng đầy đủ. Nếu Web API sử dụng GET để tiến hành các thủ tục
ra lệnh từ xa thì nó sẽ có dạng như sau:
GET
/adduser?name=Robert HTTP/1.1
Đây không phải là mẫu thiết kế hấp dẫn vì phương pháp nói trên hỗ trợ phương thức thay đổi trạng thái trên HTTP GET. Nói cách khác, phương thức yêu cầu HTTP GET nói trên có những tác động phụ. Nếu được xử lý thành công, kết quả của yêu cầu (trong ví dụ này) là để tạo thêm một người dùng mới vào kho dữ liệu. Vấn đề ở đây chỉ về mặt ngữ nghĩa. Các Web server được thiết kế để phản hồi lại các yêu cầu HTTP GET bằng cách truy vấn dữ liệu phù hợp với đường dẫn (hoặc câu truy vấn) theo URI và phản hồi những dữ liệu này hoặc những thông tin đại diện, chứ không phải để thêm một dữ liệu vào database. Từ góc độ mục đích sử dụng giao thức đó và theo tiêu chuẩn Web server HTTP/1.1 thì việc sử dụng GET theo cách này tồn tại mâu thuẫn.
Về mặt ngữ nghĩa, có nhiều vấn đề khi sử dụng GET là để khởi động một sự xoá bỏ, sửa đổi, hoặc ghi thêm vào cơ sở dữ liệu, hoặc để thay đổi trạng thái máy chủ theo một cách nào đó. Nó dùng các công cụ Web cache (các đường dẫn) và các công cụ tìm kiếm để làm thay đổi máy chủ một cách không chủ định thông qua đường dẫn. Một cách đơn giản để vượt qua vấn đề hay xảy ra này là di chuyển tên và giá trị các tham số yêu cầu trên URI vào các thẻ XML. Các thẻ kết quả, một đại diện XML của một chủ thể được tạo ra, có thể được gửi vào một nhóm HTTP POST, những nơi mà yêu cầu URI là chủ thể sinh ra có chủ đích (xem ví dụ 1 và 2).
##### Ví dụ 1. Trước
GET /adduser?name=Robert HTTP/1.1
##### Ví dụ 2. Sau
POST /users HTTP/1.1 Host: myserver Content-Type: application/xml <?xml version="1.0"?> <user> <name>Robert</name> </user>
Phương
pháp trên là ví dụ của yêu cầu RESTful: sử dụng đúng HTTP POST và bao gồm cả tải
trọng trong phần thân câu lệnh. Đối với phía đầu tiếp nhận, câu lệnh có thể được xử
lý bằng cách thêm tài nguyên vào hệ thống đó như một phần tài nguyên phụ được định
dạng trong lệnh URI; trong trường hợp này tài nguyên mới phải được thêm vào như là
một nhánh con của
/users. Quan hệ bao hàm giữa thực thể
mới và nhánh cha, như đã xác định trong yêu cầu POST, tương tự như cách tệp đã thuộc
thư mục cha. Máy khách thiết lập quan hệ giữa thực thể và nhánh cha, và xác định URI
của thực thể mới trong yêu cầu POST.
Ứng dụng máy khách sau đó có thể nhận
kết nối của nguồn sử dụng URI mới, lưu ý rằng ít nhất về mặt logic, nguồn được đặt
dưới
/users, như trong ví dụ
3.
##### Ví dụ 3. Lệnh HTTP GET
GET /users/Robert HTTP/1.1 Host: myserver Accept: application/xml
Sử
dụng GET theo cách này rất rõ ràng vì GET chỉ dành cho truy cập dữ liệu. GET là một
phương thức mà không có hiệu ứng phụ, như là một đặc tính riêng
*không thay đổi
giá trị*.
Tương tự, những thay đổi của phương thức Web cũng cần được ứng dụng trong các trường hợp khi một thao tác cập nhật được hỗ trợ qua HTTP GET, như thể hiện trong ví dụ 4.
##### Ví dụ 4. Thực hiện lệnh Cập nhật thông qua HTTP GET
GET /updateuser?name=Robert&newname=Bob HTTP/1.1
Câu
lệnh này thay đổi thuộc tính (hoặc đặc tính)
name của dữ
liệu. Có thể dùng chuỗi truy vấn (query) để dùng cho những thao tác như thế này, và
ví dụ 4 là một ví dụ đơn giản, mẫu phương-pháp-dấu-hiệu-như-là-chuỗi-truy-vấn
(query-string-as-method-signature) có thể không hoạt động khi sử dụng đối với các
thao tác phức tạp hơn. Do mục tiêu của chúng ta là làm rõ việc sử dụng các phương
thức HTTP, nên cách tiếp cận RESTful là gửi một yêu cầu HTTP PUT để cập nhật tài
nguyên, thay vì HTTP GET, cho những lý do tương tự chỉ ra ở trên (xem ví dụ
5).
##### Ví dụ 5. Lệnh HTTP PUT
PUT /users/Robert HTTP/1.1 Host: myserver Content-Type: application/xml <?xml version="1.0"?> <user> <name>Bob</name> </user>
Sử
dụng PUT để thay đổi dữ liệu gốc, cho thấy cách làm rõ ràng hơn, phù hợp với các
nguyên lý của REST và các khái niệm của các phương thức HTTP. Lệnh PUT trong ví dụ 5
rõ ràng ở chỗ nó chỉ ra dữ liệu được cập nhật bằng cách xác định nó trong câu lệnh
URI, và nó chuyển một đại diện mới của các thuộc tính dữ liệu cần chuyển đổi như là
nhóm không chặt chẽ các tên tham số và giá trị trên lệnh URI. Ví dụ 5 cũng có hiệu
ứng từ việc đổi tên tài nguyên từ
Robert sang
Bob, và trong việc các thay đổi của URI sang
/users/Bob. Trong một dịch vụ mạng REST, lệnh tiếp theo của
tài nguyên sử dụng URI cũ sẽ sinh ra lỗi căn bản 404 Not Found.
Như là một
nguyên tắc thiết kế chung, nó giúp theo sát các hướng dẫn sử dụng REST để sử dụng
các phương pháp HTTP một cách rõ ràng bằng cách sử dụng các danh từ trong URIs thay
vì động từ. Trong một Web service RESTful, các động từ — POST, GET,
PUT, và DELETE — đã được định nghĩa bởi giao thức. Và tốt nhất, để
giữ giao diện được khái quát hoá và cho phép người dùng hiểu rõ các thao tác mà họ
gọi thì Web service không nên đưa ra nhiều động từ hoặc các thủ tục remote từ xa,
như
/adduser hoặc
/updateuser.
Nguyên tắc thiết kế chung này cũng áp dụng đối với phần thân câu lệnh HTTP, được sử
dụng có chủ ý để chuyển trạng thái tài nguyên, không mang tên của một phương thức
hay thủ tục remote từ xa.
## Phi trạng thái
Các Web service REST cần được điều chỉnh về quy mô để đáp ứng được các yêu cầu ngày càng cao về chất lượng thực hiện. Các khu vực lưu trữ của máy chủ với khả năng cân bằng tải và vượt qua sự mất mát, các bức ngăn (tường lửa) và các cổng được sắp xếp theo một phương thức đặc thù nhằm tạo ra một cấu trúc dịch vụ bền vững cho phép chuyển tiếp yêu cầu từ một máy chủ tới máy chủ khác khi cần để giảm tổng thời gian phản hồi của một yêu cầu Web service. Sử dụng máy chủ trung gian nhằm nâng cao mức yêu cầu dịch vụ mạng REST của khách hàng để gửi các yêu cầu hoàn chỉnh và độc lập, có nghĩa là gửi các yêu cầu bao gồm tất cả dữ liệu cần thiết để đáp ứng sao cho các thành phần trong các máy chủ trung gian có thể gửi tiếp đi, gửi theo tuyến và cân bằng tải mà không cần các trạng thái được kiểm soát bên trong giữa các yêu cầu.
Một yêu cầu hoàn chỉnh, độc lập không đòi hỏi máy chủ để thu thập được bất kỳ ngữ cảnh hoặc trạng thái của ứng dụng nào trong lúc xử lý yêu cầu. Một ứng dụng (hoặc máy khách) Web service RESTchứa ở phần đầu và phần thân trang HTTP của một yêu cầu tất cả các tham số, ngữ cảnh và dữ liệu cần thiết bởi thành phần bên ngoài máy chủ để đưa ra một phản hồi. Phi trạng thái theo nghĩa này nâng cao tính hiệu quả của dịch vụ Web, đơn giản hoá thiết kế và sự thi hành của các thành phần của máy chủ vì khi máy chủ không có trạng thái sẽ huỷ bỏ nhu cầu để đồng bộ hoá các mảng dữ liệu với một ứng dụng bên ngoài.
Hình 1
minh hoạ một dịch vụ trạng thái, từ đó một ứng dụng có thể yêu cầu trang sau trong
một tập hợp các trang kết quả, giả sử rằng dịch vụ theo sát ứng dụng dừng lại ở nơi
trong khi điều chỉnh tập hợp đó. Đối với thiết kế trạng thái, dịch vụ gia tăng và
lưu giữ một
previousPage (trang trước) thay đổi ở nơi để
có thể phản hồi các lệnh tiếp theo.
##### Hình 1. Thiết kế trạng thái
![ Thiết kế trạng thái](figure1.gif)
Dịch vụ trạng thái như thế này trở nên phức tạp. Trong môi trường Nền tảng Java,
Phiên bản Doanh nghiệp (EE), dịch vụ trạng thái yêu cầu rất cẩn thận lúc ban đầu để
lưu trữ hiệu quả và cho phép đồng bộ hoá dữ liệu session (phiên làm việc) qua một hệ
thống container Java EE. Trong môi trường này, có một vấn đề quen thuộc đối với các
chuyên viên phát triển servlet/JavaServer Pages (JSP) và Enterprise JavaBeans (EJB),
những người này thường gặp khó khăn khi tìm gốc rễ nguyên nhân của
java.io.NotSerializableException trong khi tái tạo
session. Liệu nó được chuyển bởi thành phần chứa Servlet trong khi
HttpSession được tái tạo hoặc chuyển đi bởi thành phần
chứa EJB trong khi sao bản EJB trạng thái, đó là vấn đề mà có thể làm các chuyên
viên phát triển mất nhiều ngày để xác định mấu chốt một đối tượng mà không thực thi
Serializable, đôi khi trong một đồ thị phức tạp của
các đối tượng mà đóng góp nên trạng thái của máy chủ. Ngoài ra, phần tối ưu hoá làm
đội thêm chi phí ảnh hưởng đến hiệu quả của máy chủ.
Mặt khác, các thành phần
máy chủ phi trạng thái ít phức tạp hơn để thiết kế, viết và phân bổ thông qua máy
chủ được cân bằng tải. Dịch vụ phi trạng thái không chỉ hoạt động tốt hơn, nó còn
chuyển hầu hết vai trò duy trì trạng thái sang ứng dụng ở máy khách. Trong một dịch
vụ mạng RESTful, máy chủ chịu trách nhiệm đưa ra các phản hồi và cung cấp một giao
diện cho phép máy khách duy trì trạng thái ứng dụng của chính nó. Ví dụ, trong yêu
cầu tập hợp trang kết quả, máy khách sẽ gồm số trang thực tế khi truy xuất thay vì
đơn giản chỉ là yêu cầu
*tiếp theo* (xem hình 2).
##### Hình 2. Thiết kế phi trạng thái
![ Thiết kế phi trạng thái](figure2.gif)
Một dịch Web phi trạng thái sinh ra một phản hồi liên kết với số trang tiếp theo trong một tổng thể và để máy khách làm những gì mà nó cần để giữ giá trị này ở mức nhất định. Khía cạnh này của thiết kế dịch vụ Web RESTful có thể được tách thành hai phần trách nhiệm như là mức phân chia cao nhất mà chỉ rõ một dịch vụ phi trạng thái có thể được duy trì như thế nào.
**Máy chủ**
- Tạo ra các phản hồi bao gồm các đường dẫn tới nguồn tài nguyên cho phép các ứng dụng điều hướng giữa các tài nguyên liên quan. Loại phản hồi này nhúng các liên kết. Tương tự, nếu các yêu cầu đối với máy chủ hoặc các kho tài nguyên, thì các phản hồi RESTful Web service điển hình có thể bao gồm các đường dẫn đến các máy con hoặc các tài nguyên phụ sao cho những phản hồi này được duy trì kết nối.
- Tạo ra các phản hồi mà xác định chúng có thể lưu trữ hoặc không phải để nâng cao được hiệu quả bằng cách giảm số lượng yêu cầu đối với các tài nguyên trùng nhau và bằng cách loại trừ một vài yêu cầu toàn bộ. Máy chủ làm được như vậy bằng cách gộp một phản hồi phần đầu HTTP Last - Modified (lần sửa gần nhất) (giá trị ngày) và Cache-Control (bộ điều khiển lưu trữ).
**Ứng dụng máy khách**
- Sử dụng phần đầu phản hồi Cache-Control (bộ điều khiển lưu trữ tạm) để xác định lưu trữ tài nguyên (lập một vùng sao chép nội bộ) hay không. Máy khách cũng đọc phần đầu phản hồi Last-Modified (lần sửa gần nhất) và gửi lại giá trị ngày vào phần đầu If-Modified-Since (nếu-sửa) để truy vấn máy chủ xem tài nguyên có thay đổi không. Việc này được gọi là truy vấn có điều kiện, và hai phần đầu đi với nhau trong phản hồi của máy chủ là mã 304 chuẩn (không sửa đổi) và bỏ qua tài nguyên thực được yêu cầu nếu nó không thay đổi. Mã phản hồi HTTP 304 có nghĩa rằng máy khách có thể sử dụng an toàn một vùng sao lưu nội bộ, lưu giữ một bản sao mới nhất của tài nguyên đại diện, hiệu quả bằng cách vượt qua yêu cầu GET tiếp theo cho đến khi tài nguyên thay đổi.
- Gửi các yêu cầu hoàn chỉnh có thể được đáp ứng độc lập bởi các yêu cầu khác. Điều này đòi hỏi máy khách sử dụng toàn bộ các phần đầu HTTP như chỉ định bởi giao diện dịch vụ mạng và để gửi các đại diện tài nguyên hoàn chỉnh trong phần giữa của yêu cầu. Máy khách gửi yêu cầu lập một vài giả thuyết về các yêu cầu trước đó, sự tồn tại của một vùng của máy chủ, khả năng của máy chủ để thêm các ngữ cảnh vào yêu cầu, hoặc về các trạng thái ứng dụng mà được giữ giữa các yêu cầu.
Sự hợp tác này giữa ứng dụng máy khách và máy chủ là cần thiết để có một phi trạng thái trong một Web service RESful. Nó nâng cao hiệu quả bằng cách tiết kiệm băng thông và tối thiểu hoá trạng thái ứng dụng về phía máy chủ.
## Đưa ra cấu trúc thư mục giống URIs
Từ điểm hiện có của tài nguyên địa chỉ ứng dụng máy khách, các đường dẫn xác định tính hiện thực của Web service REST như thế nào, và được sử dụng theo cách các chuyên viên thiết kế có thể tham gia. Tính năng thứ ba của Web service RESful về tất cả đường dẫn.
Các địa chỉ Web service REST nên có tính hiện thực theo nghĩa rằng chúng dễ dàng đối với người dùng. Có thể nghĩ rằng một địa chỉ đường dẫn như là giao diện tự đóng gói mà đòi hỏi ít lý giải hoặc tham chiếu, nếu có, đối với một nhà phát triển để hiểu nó nhắm đến điểm gì và phân phát tài nguyên liên quan. Cuối cùng, cấu trúc của một địa chỉ nên rõ ràng, có thể đoán được và dễ hiểu.
Một cách để đạt được mức độ sử dụng này là xác định cấu trúc thư mục
giống URIs. Loại URI này có thứ bậc, có điểm khởi nguồn tại một đường dẫn đơn giản,
và có nhánh đi ra là các nhánh phụ thể hiện các vùng chính của dịch vụ. Theo định
nghĩa này, một URI không chỉ là một chuỗi bị cắt không giới hạn, mà còn là một cây
với các nhánh chính và nhánh dọc nối với nhau tại các nút. Ví dụ, trong một thảo
luận dịch vụ nhỏ thu thập các chủ đề từ Java tới bài viết, bạn có thể định nghĩa một
tập hợp được cấu trúc bởi URIs giống như sau:
http://www.myservice.org/discussion/topics/{topic}
Phần gốc,
/discussion, có một nút
/topics
bên dưới nó. Phía dưới là một chuỗi tên các chủ đề, như chuyện xã hội, kỹ thuật,
v.v.., mỗi chủ đề chỉ ra một mạch thảo luận. Trong cấu trúc này, dễ dàng kéo các
mạch thảo luận bằng cách gõ một vài thứ sau /topics/.
Trong một vài trường hợp, đường dẫn tới một tài nguyên cho mượn chính nó đặc biệt tốt với cấu trúc giống cây thư mục. Ví dụ, tài nguyên được cấu trúc bởi ngày, điều mà phối hợp rất tốt để sử dụng một cú pháp phân cấp.
Ví dụ này trực quan vì nó dựa trên các nguyên
tắc:
http://www.myservice.org/discussion/2008/12/10/{topic}
Phần đầu
tiên trong đường dẫn là năm có bốn chữ số, phần thứ hai là ngày có hai chữ số, và
phần thứ ba là tháng có hai chữ số. Có vẻ hơi ngu ngốc khi giải thích theo cách này,
nhưng đây là mức độ đơn giản. Con người và máy móc có thể dễ dàng sinh ra các cấu
trúc URIs giống như vậy vì chúng dựa trên các nguyên tắc. Bổ sung vào các phần đường
dẫn trong các khe của một cú pháp làm cho chúng tốt hơn vì có một mẫu xác định từ đó
để soạn chúng.
http://www.myservice.org/discussion/{year}/{day}/{month}/{topic}
Một vài hướng dẫn bổ sung để lưu ý trong khi nói về cấu trúc địa chỉ của Web service RESTful là:
- Giấu các đuôi tài liệu mở rộng của bản gốc trong máy chủ (.jsp, .php, .asp), nếu có, vì vậy bạn có thể giấu một số thứ mà không cần thay đổi địa chỉ Urls.
- Để mọi thứ là chữ thường.
- Thay thế các khoảng trống bằng gạch chân hoặc hoặc gạch nối (một trong hai loại).
- Tránh các chuỗi yêu cầu càng nhiều càng tốt.
- Thay vì sử dụng mã (404 Not Found) khi yêu cầu địa chỉ cho một phần đường dẫn, luôn luôn cung cấp một trang mặc định hoặc tài nguyên như một phản hồi.
Các địa chỉ URIs nên giữ nguyên để khi tài nguyên thay đổi hoặc khi tiến hành thay đổi dịch vụ, đường liên kết cũng sẽ giữ nguyên. Việc này cho phép đánh dấu lại vị trí đang đọc. Nó cũng rất quan trọng vì mối liên quan giữa các tài nguyên mà được mã hoá trong các địa chỉ được giữ nguyên độc lập với các mối liên quan đại diện khi chúng được lưu trữ.
## Chuyển đổi XML, JSON, hoặc cả hai
Một tài nguyên đại diện điển hình phản ánh trạng thái hiện tại của một tài nguyên, và các thuộc tính của nó, tại thời điểm một ứng dụng máy khách yêu cầu nó. Các đại diện tài nguyên theo nghĩa này là chỉ các bản tóm tắt lúc đó. Điều này có thể đơn giản như một đại diện của một bản ghi trong một cơ sở dữ liệu, bao gồm một tổng thể giữa tên các cột và các thẻ XML, nơi các giá trị thành phần trong XML bao gồm các giá trị dòng. Hoặc nếu hệ thống có một mô hình dữ liệu, thì theo định nghĩa này một tài nguyên đại diện là một bản tóm tắt các thuộc tính của những thứ trong mô hình dữ liệu hệ thống. Đây là những điều bạn muốn Web services REST mang đến.
Những trở ngại cuối cùng, đi kèm với thiết kế Web service RESTful, phải làm với định dạng dữ liệu mà ứng dụng và trao đổi dịch vụ trong mức đáp ứng yêu cầu/phản hồi hoặc trong phần thân của HTTP. Đây chính là điều nó làm để giữ mọi thứ đơn giản, có thể đọc được và kết nối được.
Các chủ thể trong mô hình dữ liệu của bạn thường liên quan đến nhau theo cách nào đó, và mối liên hệ giữa mô hình dữ liệu chủ thể (tài nguyên) nên được phản ánh theo cách chúng được đại diện để chuyển đến một ứng dụng máy khách. Trong dịch vụ chuỗi thảo luận, một ví dụ của đại diện tài nguyên được kết nối có thể bao gồm một chủ đề thảo luận gốc và các thuộc tính của nó, và các đường dẫn được nhúng vào các phản hồi nhất định của chủ đề đó.
##### Ví dụ 6. Đại diện XML của một chuỗi thảo luận
<?xml version="1.0"?> <discussion date="{date}" topic="{topic}"> <comment>{comment}</comment> <replies> <reply from="joe@mail.com" href="/discussion/topics/{topic}/joe"/> <reply from="bob@mail.com" href="/discussion/topics/{topic}/bob"/> </replies> </discussion>
Cuối cùng, để đưa đến khả năng yêu cầu loại nội dung cụ thể cho các ứng dụng máy khách mà phù hợp nhất với chúng, hãy cấu trúc dịch vụ của bạn sao cho nó tận dụng được phần đầu chấp nhận HTTP sẵn có bên trong, nơi giá trị của phần đầu là một loại MIME. Một vài loại MIME thông thường được sử dụng bởi dịch vụ RESTful được thể hiện trong Bảng 1.
##### Bảng 1. Loại MIME phổ biến được sử dụng bởi dịch vụ RESTful
|MIME-Type||Content-Type|
|JSON||application/json|
|XML||application/xml|
|XHTML||application/xhtml+xml|
Nó cho phép dịch vụ được nhiều khách hàng khác nhau sử dụng, viết bằng
các ngôn ngữ khác nhau, chạy trên nền và thiết bị khác nhau. Sử dụng kiểu MIME và
phần đầu HTTP Accept là một cơ chế được biết như là
*nội dung thương thuyết*,
cái mà cho phép máy khách chọn định dạng dữ liệu nào là đúng với chúng và tối thiểu
hoá sự nối lại giữa dịch vụ và các ứng dụng mà sử dụng nó.
## Kết luận
REST không phải là sự lựa chọn luôn đúng. Đã có trường hợp khi thiết kế Web service, nó có sự kém độc lập đối với phần mềm trung gian (ví dụ: một ứng dụng máy chủ) so với loại dựa trên SOAP hặc WSDL. Có nghĩa REST là một sự quay lại con đường mạng trước thời đại ứng dụng máy chủ rất lớn, kể cả ấn tượng các chuẩn của internet thời kỳ đầu, địa chỉ và HTTP. Bạn vừa nghiên cứu nguyên tắc gọi là thiết kế giao diện RESTful, XML so với HTTP là một giao diện vượt trội cho phép các ứng dụng bên trong, như các giao diện người dùng dựa trên Asynchronous JavaScript + XML (Ajax), dễ dàng kết nối, xác định, và tiêu thụ tài nguyên. Thực tế, sự tương thích lớn giữa Aax và REST đã nhận được rất nhiều sự chú ý gần đây.
Đưa một tài nguyên hệ thống thông qua một RESTful API là một cách linh động để cung cấp các loại ứng dụng khác nhau với dữ liệu đã được định dạng theo cách tiêu chuẩn. Nó giúp đáp ứng các yêu cầu tích hợp, điều rất quan trọng để xây dựng hệ thống khi dữ liệu được kết hợp dễ dàng (mashups) và để mở rộng hoặc xây dựng trên một gói hệ thống căn bản. Dịch vụ RESTful có thể rất lớn đối với một số thứ. Bài viết này hướng dẫn dựa vào nguyên lý cơ bản trên và hy vọng bằng cách nào đó sẽ khuyến khích bạn khám phá chủ đề này.
## Tài nguyên
### Học tập
- Đọc chương 5 luận án của Roy Fielding
[Architectural Styles and the Design of Network-based Software Architectures (Phong cách kiến trúc và thiết kế kiến trúc phần mềm dựa trên mạng)](http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm)."
- Tìm thêm thông tin tại
[RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1](ftp://ftp.isi.edu/in-notes/rfc2616.txt)
- Đọc sách
*.* [RESTful Web Services](http://www.oreilly.com/catalog/9780596529260/)
- Địa chỉ
[SOA and Web services zone](http://www.ibm.com/developerworks/webservices?S_TACT=105AGY75)trên trang web của IBM developerWorks, đăng hàng trăm thông tin về các bài viết phong phú thông tin và các bài giảng về giới thiệu, trung cấp, hoặc cao cấp để làm sao phát triển ứng dụng dịch vụ mạng.
- Thực hành tại
[IBM SOA Sandbox](http://www.ibm.com/developerworks/downloads/soasandbox/?S_TACT=105AGY75)! Nâng cao kỹ năng SOA của bạn thông qua thực hành, kinh nghiệm thực tế cùng với các bài nhập môn IBM SOA. [Trang web IBM SOA](http://www.ibm.com/software/solutions/soa/)đưa ra một tổng thể của SOA và làm thế nào IBM có thể giúp bạn ở đây.
- Hãy tham gia
[các sự kiện kỹ thuật developerWorks và web quảng bá](http://www.ibm.com/developerworks/offers/techbriefings?S_TACT=105AGY75).
- Tìm các sách cùng hoặc khác chủ đề kỹ thuật tại
[Hiệu sách Safari](http://safari.bvdep.com/?x=1&portal=bvdep&uicode=& Key=&GUID=D1F1DB57-50AF-4998-99-DA-6D-BB-A5-E0-E4-0B).
- Đọc thêm các tài liệu
[Web services on demand demo](http://www.ibm.com/developerworks/offers/lp/demos/?S_TACT=105AGY75).
### Lấy sản phẩm và công nghệ
- Tải về
[JSR 311: JAX-RS: The Java API for RESTful Web Services](http://www.jcp.org/en/jsr/detail?id=311).
- Lấy
[Jersey (GlassFish)](https://jersey.dev.java.net/).
- Tải về
[Restlet](http://www.restlet.org/), the REST framework for Java.
- Tải về
[Phiên bản đánh giá sản phẩm của IBM](http://www.ibm.com/developerworks/downloads/?S_TACT=105AGY75)và bạn có các công cụ phát triển ứng dụng và các phần mềm trung gian từ DB2®, Lotus®, Rational®, Tivoli®, and WebSphere®.
### Thảo luận
- Tham gia vào cộng đồng các chuyên viên phát triển
bằng cách gia nhập vào
[developerWorks blogs](http://www.ibm.com/developerworks/blogs/?S_TACT=105AGY75).
## Bình luận
[Vùng dữ liệu trên developerWorks](http://www.ibm.com/developerworks/vn/views/data/libraryview.jsp)
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
[Vùng mã nguồn mở trên developerWorks](http://www.ibm.com/developerworks/vn/views/opensource/libraryview.jsp)
Xem các bài viết về HTML, CSS, JavaScript,...
[Điện toán đám mây](http://www.ibm.com/developerworks/vn/views/cloud/libraryview.jsp)
Tìm hiểu về điện toán đám mây

Content-Language: en-US

Kp-eeAlive: timeout=10, max=53


text:
Buffet nướng & lẩu Nhật Bản Sumo BBQ tự hào giới thiệu đến quý khách hàng 2 nhà hàng mới khai Trương trong tháng 10, Sumo BBQ tại 210 Phan Xích Long và B3-22 Tòa Nhà Vincom.
Sự ra mắt thêm 2 nhà hàng mới này đã nâng tổng cộng số nhà hàng Sumo BBQ lên thành 4 nhà hàng được liên tiếp khai trương trong vòng chỉ hơn 5 tháng, Sumo BBQ đã thực sự trở nên quen thuộc và gần gũi hơn với người dân Sài Gòn.
Điểm hẹn
Đến Sumo BBQ, bạn có thể dễ dàng gặp mặt nhiều nhóm khách quen tại đây. Họ đến với Sumo BBQ không phải chỉ vì phong cách phục vụ buffet tại bàn đặc biệt, những món nướng ngon lạ với thịt nhập khẩu hoàn toàn, mà còn bởi nhà hàng dần trở thành địa điểm tụ họp bạn bè, gia đình mỗi cuối tuần, đồng nghiệp cùng nhau đi ăn uống, trò chuyện mỗi buổi chiều sau một ngày làm việc căng thẳng, hay cả những nhóm đối tác chọn Sumo BBQ làm nơi họp bàn, tiện lợi cho công việc mà lại không quá gò bó.
Phong cách phục vụ buffet tại bàn là điểm nhấn được nhắc đến nhiều ở Sumo BBQ. Nhân viên chăm sóc khách hàng tận tình, chuyên nghiệp đem lại cảm giác thoải mái, thư thả cho bữa ăn, khách tự nhiên vừa trò chuyện vừa thưởng thức.
Với hơn 70 món ăn phong phú, đa dạng, Sumo BBQ thuyết phục được khách hàng về chất lượng sản phẩm tại nhà hàng. Các món nướng không tẩm ướp nhiều gia vị, đem lại đánh giá trung thực nhất về độ giòn ngọt của thịt, độ tươi ngon của hải sản…
Nhà hàng còn thường xuyên thay đổi thực đơn, tạo cảm giác mới lạ cho khách hàng quen thuộc.
Đến với Sumo BBQ không chỉ để ăn ngon, ngồi mát, mà còn để được tối đa thỏa mãn cảm giác vui vẻ bên bạn bè, người thân hay đồng nghiệp, được trải nghiệm phong cách phục vụ chuyên nghiệp, ân cần, đem đến cho bữa ăn một ý nghĩa mới, sâu hơn và rộng hơn!.
Cùng xem qua thực đơn phong phú của nhà hàng Buffet Nướng và Lẩu Nhật Bản Sumo BBQ, chắc chắn Sumo BBQ sẽ làm cho bạn hài lòng về sự phong phú cũng như chất lượng từ món ăn.

markdown:
Buffet nướng & lẩu Nhật Bản
**Sumo BBQ** tự hào giới thiệu đến quý khách hàng 2 nhà hàng mới khai Trương trong tháng 10, **Sumo BBQ tại 210 Phan Xích Long và B3-22 Tòa Nhà Vincom**.
Sự ra mắt thêm 2 nhà hàng mới này đã nâng tổng cộng số nhà hàng
**Sumo BBQ** lên thành 4 nhà hàng được liên tiếp khai trương trong vòng chỉ hơn 5 tháng, **Sumo BBQ **đã thực sự trở nên quen thuộc và gần gũi hơn với người dân Sài Gòn.
**Điểm hẹn**
Đến
** Sumo BBQ**, bạn có thể dễ dàng gặp mặt nhiều nhóm khách quen tại đây. Họ đến với **Sumo BBQ** không phải chỉ vì phong cách phục vụ buffet tại bàn đặc biệt, những món nướng ngon lạ với thịt nhập khẩu hoàn toàn, mà còn bởi nhà hàng dần trở thành địa điểm tụ họp bạn bè, gia đình mỗi cuối tuần, đồng nghiệp cùng nhau đi ăn uống, trò chuyện mỗi buổi chiều sau một ngày làm việc căng thẳng, hay cả những nhóm đối tác chọn ** Sumo BBQ** làm nơi họp bàn, tiện lợi cho công việc mà lại không quá gò bó.
**Phong cách phục vụ buffet tại** **bàn** là điểm nhấn được nhắc đến nhiều ở ** Sumo BBQ**. Nhân viên chăm sóc khách hàng tận tình, chuyên nghiệp đem lại cảm giác thoải mái, thư thả cho bữa ăn, khách tự nhiên vừa trò chuyện vừa thưởng thức.
Với
**hơn 70 món ăn phong phú**, đa dạng, ** Sumo BBQ** thuyết phục được khách hàng về chất lượng sản phẩm tại nhà hàng. Các món nướng không tẩm ướp nhiều gia vị, đem lại đánh giá trung thực nhất về độ giòn ngọt của thịt, độ tươi ngon của hải sản…
Nhà hàng còn thường xuyên thay đổi thực đơn, tạo cảm giác mới lạ cho khách hàng quen thuộc.
Đến với
**Sumo BBQ** không chỉ để ăn ngon, ngồi mát, mà còn để được tối đa thỏa mãn cảm giác vui vẻ bên bạn bè, người thân hay đồng nghiệp, được trải nghiệm phong cách phục vụ chuyên nghiệp, ân cần, đem đến cho bữa ăn một ý nghĩa mới, sâu hơn và rộng hơn!.
Cùng xem qua thực đơn phong phú của nhà hàng Buffet Nướng và Lẩu Nhật Bản
**Sumo BBQ**, chắc chắn ** Sumo BBQ **sẽ làm cho bạn hài lòng về sự phong phú cũng như chất lượng từ món ăn.

Cache-Control: private, no-cache="Set-Cookie"

Set-Cookie: NewCityId=1; domain=.nhommua.com; expires=Fri, 31-Dec-9999 23:59:59 GMT; path=/


markdown:
Nếu video tải chậm quý Phật tử vui lòng tải lại trang bằng cách bấm phím F5 1 hoặc nhiều lần để xem nhanh hơn.
A DI DA PHAT, con muon tai Mp3 de chep vao dien thoai nghe di nghe lai nhieu lan
toi muon mua sach nay xin cho toi doen chi voi
TUY TOI KHONG THE HANH TRI TINH DO VI NGHIEP NANG SAU DAY...NHUNG TOI THAT LONG MONG MOI PHAP MON LUC TU SE DUOC NHAN LOAI CHUNG SINH TREN TOAN CAU DONG LOAT HUONG UNG VA HANH TRI THEO...NAM MO A DI DA PHAT

WARC-Truncated: length

Set-Cookie: watched_video_list=ODI5OA%3D%3D; expires=Thu, 18-Sep-2014 12:39:45 GMT; path=/video/

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache


text:
Phim Sex bo chong lang dau - Phim Sex, Clip Sex, Phim Cap 3, Phim Sex Nhat - PhimSexVN.org - Trang 1
PhimSexVN.org
« HOT »
Phim Sex bo chong lang dau - Trang 1
Loading
Từ khóa HOT
yumi kazama
,
yui hatano
,
viet nam
,
loan luan
,
momoka nishina
,
nguoi me dam dang
,
miki sato
,
ayane asakura
,
nanako mori
,
chinami sakai
,
hiep dam
,
maria ozawa
,
massage
,
vietnam
,
azumi mizushima
,
bo chong nang dau
,
maki hojo
,
saori hara
,
gay
,
julia
,
akiho yoshizawa
,
sakiko mihara
,
sora aoi
,
mother
,
ai haneda
,
mari hosokawa
,
takako kitahara
,
erena tachibana
,
tsubasa amami
,
risa tachibana
,
me
,
ameri ichinose
,
azusa nagasawa
,
ryoko iori
,
me ban
,
kazama
,
yuki sakurai
,
les
,
hentai
,
vietsub
,
doi vo
,
ong gia
,
chi dau
,
me vo
,
yuna shiina
,
bo chong
,
pha trinh
,
momoka
,
risa murakami
,
me ke
,
rio hamasaki
,
yui tatsumi
,
khong che
,
mai hanano
,
ryoko murakami
,
yui azusa
,
sex thu
,
tsubomi
,
reiko nakamori
,
mom
,
sex
,
vu to
,
reiko kobayakawa
,
yuu kawakami
,
me con
,
reiko
,
fad
,
azumi
,
misa yuki
Quốc gia
Nhật
Trung Quốc
Hàn Quốc
Âu Mỹ
Thể loại
VietSub
Cấp 3
Loạn luân
Cô giáo
Y tá
Công sở
Ngoài trời
Ngoại tình
Hiếp dâm
Tập thể
Không che
Sex toy
MBBG
Teen
Phim sex không dành cho người dưới 18 tuổi!
©
Before access to website, you have to agree the following
: Under the governing law of my country I have reached the age of majority and the age required to view sexually explicit material and I am accessing this website from a location where sexually explicit content is legal and permitted. I will not permit any person to access this website who is not legally permitted to do so.

Content-Type: text/html


text: Trộn văn bản là cách để đưa thông tin từ danh sách (bảng) đã có vào một đoạn văn bản có sẵn nội dung. Những văn bản này thường là một mẫu có sẵn chỉ cần điền thêm những thông tin riêng (ví dụ như giấy báo nhập học, giấy mời họp... thông tin cần điền thêm là họ tên, ngày sinh...). Bài này sẽ hướng dẫn bạn cách trộn văn bản (Mail Merge) trong Office 2007.