转载来自于:
https://www.cnblogs.com/breka/p/11635540.html
一.http协议
http协议它规定了在网络上发布,传输和接收html页面的方法,大家遵守这个协议就能实现信息的传输。
二http请求信息的格式
HTTP请求报文由请求行,请求头部,空行和请求体4个部分组成:
1.请求行:请求行由方法字段,URL字段和HTTP协议版本字段3个部分组成,他们之间使用
空格隔开,常用的请求方法由:GET,POST ,DELETE,PUT
2.GET:当客户端要从服务器中读取某个资源时,使用GET 方法。GET 方法要求服务器将URL 定位的资源放在响应报文的数据部分,回送给客户端,即向服务器请求某个资源。使用GET 方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制。例如:
3.POST:当客户端给服务器提供信息较多时可以使用POST 方法,POST 方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器处理。GET 一般用于获取/查询资源信息,POST 会附带用户数据,一般用于更新资源信息。POST 方法将请求参数封装在HTTP 请求数据中,以名称/值的形式出现,可以传输大量数据;
4.请求头部:请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:
● User-Agent:产生请求的浏览器类型;
● Accept:客户端可识别的响应内容类型列表;星号 “ * ” 用于按范围将类型分组,用 “ */* ” 指示可接受全部类型,用“ type/* ”指示可接受 type 类型的所有子类型;
● Accept-Language:客户端可接受的自然语言;
● Accept-Encoding:客户端可接受的编码压缩格式;
● Accept-Charset:可接受的应答的字符集;
● Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机;
● connection:连接方式(close 或 keepalive);
● Cookie:存储于客户端扩展字段,向同一域名的服务端发送属于该域的cookie;
5.空行:最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头;
6.请求包体:GET方法没有请求体,POST方法由请求体。POST 方法适用于需要客户填写表单的场合。与请求包体相关的最常使用的是包体类型 Content-Type 和包体长度 Content-Length;
7. 图解
8.HTTP 响应报文
HTTP 响应报文由状态行、响应头部、空行 和 响应包体 4 个部分组成,如下图所示:
下面对响应报文格式进行简单的分析:
状态行:状态行由 HTTP 协议版本字段、状态码和状态码的描述文本 3 个部分组成,他们之间使用空格隔开;
● 状态码由三位数字组成,第一位数字表示响应的类型,常用的状态码有五大类如下所示:
200:代表请求成功
3xx:代表重定向的问题
400:表示提交参数错误
401/403:权限不够
500:代表服务端出现问题