目录
基本概念
HTTP请求信息和响应信息的格式!
请求:
1. 请求行
2. 请求头信息
3. 请求主题信息(可以没有)
4. 头信息结束后和主体信息之间要空一行
请求行又分3部分!
请求方法 请求路径 所用协议
请求方法:GET POST PUT DELETE TRACE OPTIONS
所用协议:目前一般是HTTP/1.1
使用phpStudy演示GET方法
启动phpStudy后:
进入根web根目录,创建一个php文件,代码如下:
<?php
echo 'hello'
?>
web网站运行截图如下:
使用telnet发送GET方法,获取web数据。
进入后,按ctrl + ] 后开启回显,再按下回车即可
输入如下命令:
GET /Hello.php HTTP/1.1
Host: localhost
现象如下,可以得到回过来的数据
过了几秒钟,就会自动断开。
分析下GET方法
GET /Hello.php HTTP/1.1 为请求头
Host: localhost 请求头部信息
这里使用Host的原因是:一台服务器上可能有很多虚拟路径,所以Host是指明是哪个虚拟路径。
【解析】
1.GET就是请求方法method;
2./Hello.php为请求的资源;
3.HTTP/1.1为请求所用的版本。
4.头信息结束后,有一个空行。头信息和主体信息(如果有),需要这个空行区分。
5.即使没有主体信息,空行也不能少。
使用phpStudy演示POST方法
做一个PHP页面,这个页面接收POST消息后,写成一个post.txt的文本。
源码如下:
<?php
$str = implode($_POST, "\n");
file_put_contents('./post.txt', $str);
echo 'write ok';
?>
同样使用上面的telent即可!
输入如下命令
POST /Post.php HTTP/1.1
Host: localhost
Content-type: application/x-www-form-urlencoded
Content-length: 25
username=nimama&age=10000
如下
现象如下:
分析POST方法
POST /Post.php HTTP/1.1
Host: localhost
Content-type: application/x-www-form-urlencoded
Content-length: 25
username=nimama&age=1000
【注意】
头信息里,要标明主体的长度POST比GET多了主体信息。
Content-type: application/x-www-form-urlencoded是要是服务器这是POST方法。