telnet 实现HTTP协议

环境:widows和linux都可以,只是windows下效果不好。本文以在linux下进行

目的:让你了解应用层协议HTTP,手动方式敲协议。


用telnet建立连接后,就可以手动实现协议。telnet不仅可以连接服务端的23端口,也可以连接其他端口,例如:21,25,80等。


GET 页面

1、与baidu建立http连接

  1. telnet www.baidu.com 80  

输出

  1. fym@G470:~/www/public_html/test$ telnet www.baidu.com 80  
  2. Trying 61.135.169.125...  
  3. Connected to www.a.shifen.com.  
  4. Escape character is '^]'.  

2、发送GET请求首页内容

  1. GET / HTTP/1.1  

输入上面这行内容后,要敲两次回车键。然后你就可以看见百度给你返回的首页内容了。


POST 上送数据

服务端的php代码,formaction.php

  1. <?php  
  2. import_request_variables(gp,"formval_");  
  3. echo "name = ".$formval_name;  
  4. echo "<br />";  
  5. echo "age = ".$formval_age;  
  6. ?>  

telnet 主机后,POST数据

  1. fym@G470:~/www/public_html/test$ telnet fym.vacau.com 80  
  2. Trying 31.170.161.196...  
  3. Connected to fym.vacau.com.  
  4. Escape character is '^]'.  
  5. POST /test/formaction.php HTTP/1.1  
  6. HOST: fym.vacau.com  
  7. Content-Type: application/x-www-form-urlencoded  
  8. Content-Length: 15  
  9.   
  10. name=fym&age=26  

服务端回送数据

  1. HTTP/1.1 200 OK  
  2. Date: Sat, 09 Jun 2012 04:15:38 GMT  
  3. Server: Apache  
  4. X-Powered-By: PHP/5.2.17  
  5. Content-Length: 178  
  6. Connection: close  
  7. Content-Type: text/html  
  8.   
  9. name = fym<br />age = 26  

GET

  1. fym@G470:~/www/public_html/test$ telnet fym.vacau.com 80  
  2. Trying 31.170.161.196...  
  3. Connected to fym.vacau.com.  
  4. Escape character is '^]'.  
  5. GET /test/formaction.php?name=fym&age=26 HTTP/1.1  
  6. HOST: fym.vacau.com  

你可能感兴趣的:(telnet 实现HTTP协议)