模型
HTTP请求包括:
- 请求行(请求方法)
- 请求头(消息包头)
- 请求正文
POST /login.html HTTP/1.1 //请求行,POST为请求方法,/login.html为请求的页面,最后为HTTP协议版本
HOST:www.xxxuser.com //这个及以下为请求头,当然实际不止这么少
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
//这里有个空白行,代表请求头结束
username=admin&password=admin //请求正文,不一定有
下面是访问百度的请求头
HTTP响应包括:
- 响应行
- 响应头(消息报头)
- 响应正文(消息主题)
HTTP/1.1 200 ok//响应行
Date:Thu,28 Feb 2015 07:34:47 GMT //这行及以下为响应头
Server:BWS/1.0
Content-length:4199
Content-type:text/html;chartset=utf-8
Cache-Control:private
Expiress;Thu,28 Feb 2015 07:34:47 GMT
Cache-Encoding:gzip
Set-Cookie:H_PS_PSSID=2022_1438_1944_1788;path=/;domain=.xxxx.com
Connection:Keep-Alive
//空白行,代表响应头结束
下面是访问百度的响应头
利用telnet手工模拟HTTP请求
1.打开windows的控制台,
输入telnet www.baidu.com 80 (默认的端口23没开放)
为什么后面还要加个80呢,这是请求80端口的意思,另外还有的话就是23端口没打开,如下图:
输入telnet www.baidu.com 80 后如下图
2.按下组合键 Ctrl+]
3.按一下回车
4.输入HTTP请求(手速要极快【估计只能顶级打字员能行】,不然会遗失主机的连接(通俗来说就是断开了连接) ,我们还是乖乖打好复制粘贴吧,这里面只能用右键选择粘贴,不能用键盘快捷键)
example:
GET / HTTP/1.1
HOST:www.baidu.com
输完或者粘贴完敲两下回车!!!!
POST / HTTP/1.1
HOST: www.baidu.com
HEAD / HTTP/1.1
HOST: www.baidu.com