HTTP报文
概念
在服务端和客户端交互的媒介就是报文,分为请求报文,响应报文,客户端发往服务端的称为请求报文,相反的称为相应报文。
组成
如访问www.baidu.com
第一行为:方法(method)服务器URL 版本
第二行及以后:首部(header),格式均为key: value
第一行为:版本 状态码 原因短语
第二行及以后:首部(header),格式均为key: value
以下均为响应报文的主体(body)
方法
方法主要是作为一种标识,一种规定。
比如get请求,一般就作为获取信息使用,参数拼接在URL上,body是空的,将这些信息放入请求报文发送服务端;当服务端接收到get请求后,会将需要的信息放在body中,以响应报文的形式返回到客户端。
而post请求一般用作保存大量数据,多用于表单提交,将信息放在body中,发往服务端,服务端接收到信息后,只需要正常返回200的状态码,body为空。
常见的方法都有
GET
通常用于从服务端获取数据
POST
通常用于向服务端输入数据,如表单提交
PUT
一般用于向服务端发送文档并存储
HEAD
响应报文只会返回首部(header),不会返回主体(body)
DELETE
请求服务端删除资源
TRACE
OPTIONS
状态码
100~199
信息型状态码,在http/1.1版本刚加入的,比较新。
200~299
成功状态码
300~399
重定向状态码
比如当请求的地址中的资源被移动了,服务端会返回301和一个location:***的报文,然后客户端会重定向至该location,再次获取资源。
400~499
客户端错误状态码
如404,服务端没有找到该资源
500~599
服务端错误状态码
首部
首部包含很多种类型
比如上边访问百度的请求报文
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
表示可以接受服务端返回的数据的类型
响应报文中的
Content-Type: text/html;charset=utf-8
表示发送至客户端的数据的类型