定义
超文本传输协议。定义了Web端如何与服务器对话,以及数据如何从服务器传回客户端,即一个数据格式。
连接
使用TCP/IP传输数据
1.默认 客户端在端口80打开与服务器的一个TCP连接,URL也可以指定其他端口
2.客户端向服务器发送消息
格式:
首部
空行\r\n\r\n
请求的数据
首部具体格式:
请求行 (方法 资源路径 Http版本)
keyword:value (keyword不区分大小写,value有时区分有时不区分)
可选
例子:
GET /index.html HTTP/1.1
User-Agent:Mozilla/5.0(maCINTOSH;Intel Mac os x 10.8;rv:20.0) Gecko/20100101 Firefox/20.0
Host:en.wikipedia.org
Connection:keep-alive
Accept-Language:en-US,en;q=0.5
Accept-Encoding:gzip,deflate
Accept:text/html,application/xhtml+xml,application/xml;q=0/9,*/*;q=0.8
3.服务器端向客户端发送响应
格式:
响应码 1xx提供消息的响应 2xx提示成功 3xx 重定向 4xx客户端错误 5xx服务器错误
元数据首部
数据
常用响应码
200 OK 客户端请求成功
400 BadRequest 客户端请求语法错误,不能被服务器所理解
401 Unauthorized 请求未经授权,这个状态代码必须和WWW-Authentication报头域一起使用
403 Forbidden 服务器收到请求,但拒绝提供服务
404 Not Found 请求资源不存在,如输入了错误的URL
500 Internal Server Error 服务器发生不可预期的错误
503 Server Unavailable 服务器当前不能处理客户端请求,一段时间后能恢复正常
例子:
HTTP/1.1 200 OK
Date:Sun,21 Apr 2013 15:12:46 GMT
Server:ApacheConnection:close
Content-Type:text/html;charset=ISO-8859-1
Content-length:115
回送数据
与Http服务器通信遵循一种请求-响应模式:先是一个无状态的请求,后是一个无状态的响应