定义
是客户端与服务端传输文本的一种协议标准
http协议是无状态的
http协议默认端口是80
hrrps协议(加密传输)端口443
### 请求方法
```js
get(获取信息页面)
post(上传,修改,添加,服务端信息)
put(修改)
delete(删除)
head(只返回头信息)
trace(回显服务器收到的请求,主要用于测试或诊断)
connect(HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器)
options(客户端查看服务器性能)//如content-type为application/json时,会先发起一次options请求,如果支持所请求的方式,再发起请求
请求报文
一个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据。
请求行:请求报文的第一行就是请求行,用来说明要做些什么,请求行由请求方法字段、URL字段和HTTP协议版本字段三个字段组成,他们用空格分隔。比如:GET /data/info.html HTTP/1.1
请求头部:请求行后面为请求头部,包含零个活多个首部字段。这些首部字段表示了请求的各种条件和属性。每个首部字段都包含一个名字和一个值,两者之间用冒号来分隔。
空行:作用是高速服务器,请求头到此为止。
请求数据:空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求体里包含了要发给WEB服务器的数据;响应体里包括了要返回给客户端的数据
请求行
URL字段用以标识客户端想请求的资源位置,包含协议部分“http”,域名部分“www,aspxfans.com”
协议版本:
HTTP/0.9:无法展示图片。
HTTP/1.0:一次请求/响应建立并拆除一次连接。
HTTP/1.1:支持持久连接。同一TCP连接中可以传送多个HTTP请求和响应。
HTTP/2.0:使用多路复用技术,并发处理巨量的请求。
请求头
Host:客户机通过这个头告诉服务器,想访问的主机名。Host头域指定请求资源的主机和端口号
Referer:客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的。
User-Agent:ser-Agent头域的内容包含发出请求的用户信息,浏览器类型等。
Cookie:保存了该客户机访问这个Web页面时的身份信息,是最重要的请求头信息之一。
Accept:浏览器可接受的MIME类型。
Accept-Charset:浏览器可接受的字符集。
Content-Length:表示请求消息正文的长度。
Connection:处理完这次请求后是否断开连接还是继续保持连接“Keep-Alive”。
Range:Range头域可以请求实体的一个或者多个子范围。
响应报文
一个HTTP响应报文由三个部分组成:响应行、响应头、响应体。
响应行:响应行一般有协议版本、状态码及其描述组成,比如:HTTP/1.1 200 OK
响应头:响应头用于描述服务器的基本信息,以及各种数据,服务器通过这些数据的描述信息,可以通知客户端如何处理数据
响应体:响应体就是响应的消息,如HTML页面,JS代码之类的
//响应行(状态码)
信息1xx:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
成功2xx:
重定向3xx:302表示请求的资源移动到一个新的地址。307和304表示需请求缓存。
客户端错误4xx:404(无请求的资源),403(拒绝访问,权限不足)。
服务端错误5xx:
//响应头
Server:服务器通过这个头告诉浏览器服务器的类型。
Location:这个头配合302状态码使用,用于重定向接收者到一个新URI地址。
Content-Length:表示内容长度。
*content-disposition:用于获取文件名
*Content-Type:表示后面的文档属于什么MIME类型。
Content-Encoding:文档的编码方法。只有在解码之后才可以得到Content-Type头指定的内容类型。
Allow:服务器支持哪些请求方法。
Set-Cookie:设置和页面关联的Cookie。
Date:当前的GMT时间,例如,Date:Mon,31Dec200104:25:57GMT。
content-type常用格式
headers: {
Authorization: getLocalAccessToken(),
'content-type': type
},
格式:类型/子类型;参数(参数如charset=UTF-8)
1.application/x-www-form-urlencoded
2.application/json(为默认格式)
3.multipart/form-data
4.application/xml 和 text/xml