一、HTTP 消息?
-
1. HTTP 报文
HTTP 报文 , 又称为 HTTP 消息,是指服务器和客户端之间交换数据的方式。分为:请求(客户端向服务器端发送的内容)、响应(服务器的响应);
-
2. 请求 Requests
-
Method: 请求方法
- GET:用来请求URL指定的资源,指定资源经服务器端解析后返回响应内容。(常用)
- Post:用来传输实体的主体。 (常用)
- PUT:用来传输文件。
- Head:同 GET,但不返回报文主体部分,多用于确认信息。
- Delete: DELETE 按请求URL删除指定的资源。
- Options:请求URL指定的资源支持的方法。
- Connect:建立目标URL服务器的隧道。
- ……
如图:
-
Path:请求路径
-
Version of the protocol:HTTP 版本号
-
Headers:头部信息
-
-
3. 响应 Responses
- Version of the protocol:HTTP 版本号
- Status code:状态码
- Status message:状态信息
- Headers:头部信息
如图:
PS:
1. 最常用的请求方法:GET、Post
2. 常见的请求方法:至少有七种(GET、Post、Head、PUT、Delete、COnnect、Options)
3. 请求方法:不止七种(GET、Post、Head、PUT、Delete、COnnect、Options、Trace、Patch)
二、HTTP 消息基本结构。
- Start line:起始行
- HTTP headers:HTTP 头
- empty line:空白行
- body:正文
PS:
1. 起始行和HTTP头统称为:请求头;
2. 有效负载称为:消息正文;
- HTTP 请求与相应信息
三、HTTP 起始行。
function RequestByGet(nProducttemp,nCountrytemp)
{
var xmlhttp
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var URL="http://www.baidu.com/;
// ——> false
xmlhttp.open("GET",URL, false);
xmlhttp.send(null);
var result = xmlhttp.status;
if(result==200)
{
document.getElementById("div_RightBarBody").innerHTML=xmlhttp.responseText;
}
xmlhttp = null;
}
var xmlhttp
function RequestByGet(nProducttemp,nCountrytemp)
{
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var URL="http://www.baidu.com/";
// ——> true
xmlhttp.open("GET",URL, true);
xmlhttp.onreadystatechange = handleResponse;
xmlhttp.send(null);
}
function handleResponse()
{
if(xmlhttp.readyState == 4 && xmlhttp.status==200)
{
document.getElementById("div_RightBarBody").innerHTML=xmlhttp.responseText;
xmlhttp = null;
}
}
四、HTTP 请求头 && 请求体。
-
1. HTTP 请求头
-
请求头 = 头名称 + :+具体值(不带换行符); (多个值之间用 ’ : ’ 分割)
-
通用头:
-
请求头
-
实体头
PS:
-
-
2. HTTP 请求体
请求消息的最后部分为请求主体;
-
*单一资源主体:单个文件组成;含两个header 定义(Content-Type && Content-Length)
-
*多资源主体:多个请求主体组成,各部分包含内容不同;
PS:
1.不是所有请求都需要请求主体(GET、Head…)
2.部分请求将数据发送给服务器(POST) -
五、HTTP 状态行 && 状态码。
-
1.状态行
起始行(start-line)又名 状态行
-
内容:
-
1.协议版本:通常为 HTTP/1.1
-
2.状态码:如200,404,302
-
3.状态文本:如OK
PS:HTTP/1.1 200 OK
-
-
-
2.状态码
成功响应码 :
状态码 描述 200 OK 请求成功 (常见) 201 Vreated 请求成功,并创建一个新资源i 202 Accepted 请求收到,但未反应 203 Non-Authoritative 成功处理请求,但返回实体头部信息不是在原始服务器上有效确定集合,而是来自本地或第三方的拷贝 204 No Content 成功处理请求,但不需要返回任何实体,且希望返回更新的元信息 205 Reset Content 成功处理请求,且无任何返回内容 206 Partial Content 服务器成功处理部分GET请求 重定向
状态码 描述 300 Multiple Choice 请求的资源有很多并且可供选择 301 Moved Permanently 请求资源已永久移动新位置 302 Found 服务器转接(定位到其他服务器)(常见) 303 See Other 请求资源在另外URL上,且要用GET方式访问 304 Not Modified 未被修改访问缓存 (常见) 客户端响应(常见)
状态码 描述 400 Bad Request 请请求格式错误 401 Unauthorized 请求需要验证 403 Forbidden 拒绝响应 404 Not Found 请求的资源不存在 405 Method Not Allowed 必须使用指定方法进行请求 服务端响应(常见)
状态码 描述 500 Internal Server Error 服务器内部错误 501 Not Implemented 请求方法不被支持 502 Bad Gateway 路径错误 503 Service Unavailabe 服务器未初始化(可能宕机) 504 Gateway Timeout 服务器作为网关,不能及时作出响应时报错 505 HTTP Version Not Supported 协议版本不支持