请求报文
1,请求行
由3部分组成,分别为:请求方法、URL以及协议版本,之间由空格分隔
请求方法包括GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE以及扩展方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,处于安全性的考虑也是不可用的
协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1
2,请求头部
请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔
接受请求的服务器地址,可以是IP:端口号,也可以是域名
User-Agent:发送请求的应用程序名称
Connection:指定与连接相关的属性,Connection:Keep-Alive
Accept-Charset:通知服务端可以发送的编码格式
Accept-Encoding:通知服务端可以发送的数据压缩格式
Accept-Language:通知服务端可以发送的语言
请求头部的最后会有一个空行,表示请求头部结束,接下来为请求正文,这一行非常重要,必不可少
3,请求正文
可选部分,比如GET请求就没有请求正文
响应报文
HTTP响应报文主要由状态行、响应头部、响应正文3部分组成,这里最重要的就是状态码了,主要讲讲状态码
大概意思:
1 .(信息性状态码): 接收的请求正在执行
2.(成功状态码):请求正常处理完毕
3.(重定向状态码):需要附加操作以完成请求
4.(客户端错误状态码): 服务器无法处理请求
5.(服务器错误状态码): 服务器处理请求出错
常见状态码
200:响应成功
301:永久重定向,搜索引擎将删除源地址,保留重定向地址
302:暂时重定向,重定向地址由响应头中的Location属性指定(JSP中Forward和Redirect之间的区别)
由于搜索引擎的判定问题,较为复杂的URL容易被其它网站使用更为精简的URL及302重定向劫持
304:缓存文件并未过期,还可继续使用,无需再次从服务端获取
400:客户端请求有语法错误,不能被服务器识别
403;服务器接收到请求,但是拒绝提供服务(认证失败)
404;请求资源不存在
499:客户端发起请求后,一段时间内没有收到代理服务器的应答,导致连接失败
有两种可能:
- 代理服务器认为客户端发起的请求过于危险,所以主动给断了
- 代理服务器实在么得办法连接到其他服务,导致timeout
500:服务器内部错误