HTTP简说
http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端。
请求体组成
- 请求行:post /index.html HTTP/1.1
请求方法:get,post,patch,put,delete,head等
请求URL:资源定位
http协议及版本:http 0.9、http 1.0、http 1.1、http 2.0
- 请求头:(Request Header)
accept:请求报文可通过一个“Accept”报文头属性告诉服务端 客户端接受什么类型的响应。Accept: text/plain
Accept-Charset:可接受的字符集 Accept-Charset: utf-8
cookie:用户存取用户的session
Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。
User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用
Host:初始URL中的主机和端口。
Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP1.1(HTTP 1.1默认进行持久连接)
- 请求正文
请求头和请求正文之间是一个空行,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息
username=cmc&password=1234或者{‘username’:‘cmc’,‘password’:‘1234’}等
示例:
响应体构成
- 状态行
http协议及版本:http 0.9、http 1.0、http 1.1、http 2.0
响应状态码:
1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急…
2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。
4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。
- 响应头
Access-Control-Allow-Origin:指定哪些网站可以跨域源资源共享,Access-Control-Allow-Origin: *
Set-Cookie:服务端设置客户端HTTP cookie,Set-Cookie: UserID=itbilu; Max-Age=3600; Version=1
Expires:指定一个日期/时间,超过该时间则认为此回应已经过期,Expires: Thu, 01 Dec 1994 16:00:00 GMT
Server:服务器的名称 Server: nginx/1.6.3
Content-Encoding:响应资源所使用的编码类型。 Content-Encoding: gzip
Content-Language:响就内容所使用的语言 Content-Language: zh-cn
Content-Length:响应消息体的长度,用8进制字节表示
- 响应正文:#务器返回的内容,网页,图片,等等