超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议。
HTTP请求
HTTP请求报文由3部分组成(请求行+请求头+请求体):
这三个部分的内部详情:
例子:
请求方法
GET : 从服务器获取
POST:向服务器提交
DELETE:删除资源
PUT: 更新资源
常用的是GET和POST,GET请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连;POST把提交的数据则放置在是HTTP包的请求体中。GET的长度受限于url的长度,而url的长度限制是特定的浏览器和服务器设置的,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力。
GET和POST还有一个重大区别,简单说:GET产生一个TCP数据包,POST产生两个TCP数据包
HTTP响应
状态码
1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急…
2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。
4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。