http 请求和响应
http请求:
1. 请求行
实例:GET /0606/01.php HTTP/1.1
请求行分为三部分:请求方法、请求路径、所用协议
请求方法:GET、POST、HEAD、PUT(传输文件)、DELETE、TRACE、OPTIONS
注意:这些请求方法虽然HTTP协议里规定,但web server 未必支持或允许这些方法。
-
POST比GET多了主体信息,所以需要在头信息中标明主体的长度(content-length)
POST时还要告诉服务器,数据类型content-type:application/x-www-urlencoded -
HEAD和GET基本一致,只是不返回内容比如我们只是确认一个内容还正常存在,不需要返回具体内容,使用HEAD比较合适。
-
TRACE:用代理上网时,想看看代理有没有修改你的HTTP请求,可以用TRACE来测试,服务器就会把最后的请求返回
-
OPTIONS:返回服务器可用的请求方法
请求路径: /0606/01.php
协议:HTTP/1.1
2. 请求头信息
格式为key:value
请求头信息结束后,有一个空行
头信息和主体信息之间需要空行做区分;
即使没有主体信息,空行也不能少。
3. 请求主体信息(可选):发送的内容
请求 实例:
POST /0606/02.php HTTP/1.1
Host:localhost
Content-type:application/x-www-urlencoded
Content-length:5
空行
age=3
http响应
1. 响应行
实例:HTTP/1.1 200 OK
协议版本、状态码(200、404、304)、状态文字(用来描述状态码,便于观察)
常用状态码:
-
200 - 服务器成功返回网页
-
301/302 重定向(默认302,301需在代码中指定)
-
304 Not Modified 未修改(读取客户端缓存信息时,返回304)
-
307 重定向中保持原有的请求数据(方法),POST请求时,使用307重定向到另一个目录时,保持POST方法(301/302则会变为默认的GET方法)
-
404 - 请求网页不存在
-
503 - 服务器暂时不可用
-
500 - 服务器内部错误
2. 响应头信息
格式为key:value
Content-length:接下来主体的长度
空一行,显示响应主体
3. 响应主体(可没有)
响应 实例:
HTTP/1.1 200 OK
Content-type:text html
Content-length:5
空行
hello