
HTTP协议
- HTTP(hypertext transport protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。
- 客户端与服务端通信时传输的内容我们称之为报文。
- HTTP就是一个通信规则,这个规则规定了客户端发送给服务器的报文格式,也规定了服务器发送给客户端的报文格式。
实际我们要学习的就是这两种报文。客户端发送给服务器的称为”请求报文“,服务器发送给客户端的称为”响应报文“。
请求的协议格式
一个完整的HTTP请求包括:一个请求行、若干请求头、以及实体内容
请求的HTTP协议格式:请求行
请求头
空行
请求体
请求头字段
- Accept:用于告诉服务器,客户机支持的数据类型
- Accept-Charset:用于告诉服务器,客户机采用的编码
- Accept-Encoding:用于告诉服务器,客户机支持数据压缩格式
- Accept-Language:客户机的语言环境
- Host:客户机通过这个头告诉服务器,想访问的主机名
- If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间
- Refer:客户机通过这个头告诉服务器,它是从哪个资源访问服务器的(防盗链)
- User-Agent:客户机通过这个头告诉服务器,客户机的软件环境
- Cookie:客户机通过这个头向服务器带数据
- Connection:这个请求完了,是保持连接还是关闭
- Range:断点下载
bytes=n1-n2
,传输范围n1到n2字节bytes=n-
,传输web资源中第n个字节以后的所有内容bytes=n
,传输最后n个字节
响应的协议格式
一个HTTP响应代表服务器向客户端回送的数据,包括:一个状态行、若干消息头、以及实体内容
响应的HTTP协议格式:响应首行
响应头信息
空行
响应体
常见的响应码
响应码对浏览器来说很重要,它告诉浏览器响应的结果;
200
:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;404
:请求的资源没有找到,说明客户端错误的请求了不存在的资源;500
:请求资源找到了,但服务器内部出现了错误;302
:请求重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location
,它指定了新请求的URL地址
;
具体响应码可参考:
HTTP 状态消息