git ssb

0+

k4ml / belajar-js



Commit fd94009febae4c2e7d6d5b74cac0429cd471abaa

add new tips - nc

Kamal Bin Mustafa committed on 1/28/2015, 3:46:33 PM
Parent: 998eca3a216412a431765230c7b8533155bb5da2

Files changed

_tips/bina-http-requests-nc.mdadded
_tips/bina-http-requests-nc.mdView
@@ -1,0 +1,53 @@
1+---
2+layout: tips
3+title: Bina HTTP requests menggunakan nc
4+author: kamalmustafa
5+date: 2015-01-28
6+---
7+
8+Untuk memeriksa *connection* dengan sesuatu laman web, saya biasanya menggunakan `telnet`
9+untuk melakukan *http requests* kepada *server* laman web tersebut. Tujuan utama adalah
10+untuk berhubung dengan server secara terus bagi memastikan masalah yang dihadapi tidak
11+disebabkan oleh aplikasi diperingkat lebih tinggi.
12+
13+Contohnya untuk melakukan `GET` *request*:-
14+
15+ telnet github.io 80
16+ Trying 199.27.75.133...
17+ Connected to github.map.fastly.net.
18+ Escape character is '^]'.
19+ GET /
20+ Connection closed by foreign host.
21+
22+`telnet` mempunyai pelbagai masalah. Dalam contoh di atas, saya cuma dapat melakukan `GET`
23+*request* tanpa sempat menambah sebarang *HTTP headers* seperti `HOST` sebelum server tersebut
24+menutup *connection*.
25+
26+Sesetengah *server* juga akan *time out* dengan cepat sekiranya mereka tidak menerima sebarang
27+data selepas *establish connection*. Lagi satu oleh kerana arahan di atas dimasukkan secara
28+interaktif, ianya tidak boleh diulang atau diautomasi dalam bentuk *script*.
29+
30+Menggunakan `nc` nampaknya lebih baik. Contohnya untuk melakukan request beserta dengan `HOST`
31+*header* sekali:-
32+
33+ echo -en "HEAD / HTTP/1.1\r\nHOST: k4ml.github.io\r\n\r\n" | nc k4ml.github.io 80
34+
35+Dan anda akan mendapat output:-
36+
37+ HTTP/1.1 200 OK
38+ Server: GitHub.com
39+ Content-Type: text/html
40+ Last-Modified: Fri, 12 Apr 2013 23:26:51 GMT
41+ Expires: Sun, 26 May 2013 19:40:06 GMT
42+ Cache-Control: max-age=600
43+ Content-Length: 9991
44+ Accept-Ranges: bytes
45+ Date: Sun, 26 May 2013 19:30:07 GMT
46+ Via: 1.1 varnish
47+ Age: 0
48+ Connection: keep-alive
49+ X-Served-By: cache-s34-SJC2
50+ X-Cache: MISS
51+ X-Cache-Hits: 0
52+ X-Timer: S1369596606.987305880,VS0,VE145
53+ Vary: Accept-Encoding

Built with git-ssb-web