HTTP概念:
HTTP全称是HyperText Transfer Protocal,即超文本传输协议,是应用层协议。当你上网浏览网页的时候,浏览器和web服务器之间就会通过HTTP在Internet上进行数据的发送和接收。HTTP是一个基于请求/响应模式的、无状态的协议。即我们通常所说的Request/Response。
上面说过HTTP是一个基于请求/响应模式的、无状态的协议。下面我们就分请求和响应来分别解读。
HTTP请求包报文由四部分组成:请求行,请求头,空行、请求体。
请求行:一般包含有请求的URL,请求方式(GET/POST),协议名称和版本号。
请求头:
Host:请求地址
User-AgentL:浏览器类型及操作做系统先关信息
Accept:指定客户端接受哪些类型的信息。
Accept-Charset请求报头域用于指定客户端接受的字符集
Accept-Language:指定客户端接收语言格式
Accept-Encoding:指定客户端接收编码格式
Authorization:请求报头域的请求,要求服务器对其进行验证。
Content-Length:请求长度
Content-Type:请求类型
Referer:当前请求引用于哪里
Connection:浏览器跟服务器连接状态
Cookie:浏览器保存的cookie信息
Date:请求时间
请求空行: 标志着请求头结束,请求正文(请求体)的开始
请求体:只有使用POST方式访问时参数才会存在请求体。
HTTP响应包报文由三部分组成:响应行,响应头、响应体。
响应行:协议、版本、数字形式的状态代码,及相应的状态描述组成(示例:HTTP/1.1 200 OK)
状态代码由 3 位数字组成, 表示请求是否被理解或被满足,状态描述给出了关于状态码的简短的文字描述。状态码的第一个数字定义了响应类别,后面两位数字没有具体分类。第一个数字有 5 种取值,如下所示。
常见的状态码、描述、说明
200 OK //客户端请求成功
304 // 返回上次请求资源未作改动,验证浏览器的缓存机制
400 Bad Request //请求参数错误
401 Unauthorized //客户端无权访问,要去输入用户名\密码之类的授权信息
403 Forbidden //禁止访问(读写权限等影响)
404 Not Found //请求的资源不存在
405 //请求方式不正确
500 Internal Server Error //服务内部错误
502:网关错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
Content-Language: zh-cn --表示服务器支持的语言
Content-Encoding:表示服务器发送给浏览器的数据类型
Content-Length:表示服务器发送给浏览器的数据大小
Content-Type:表示服务器发送给浏览器的数据类型及内容编码
Connection:浏览器跟服务器连接状态
Date:响应时间
响应体:服务端返回给客户端的数据