1、http报文的请求会有几个部分
http的报文分为:请求报文和响应报文
1】请求报文
请求行、请求头部、空行、请求数据(请求体)
1)请求行
请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。比如 GET /data/info.html HTTP/1.1
2)请求头部(见上)
3)空行
它的作用是通过一个空行,告诉服务器请求头部到此为止
4)请求数据
若方法字段是GET,则此项为空,没有数据
若方法字段是POST,则通常来说此处放置的就是要提交的数据
2】响应报文
HTTP响应报文也由三部分组成:响应行、响应头、响应体
1)响应行
响应行一般由协议版本、状态码及其描述组成
比如 HTTP/1.1 200 OK
2)响应头(见下)
3)响应体
响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JSON就是JSON
2、常见http请求头和响应头?
1】请求头
Accept
可接受的响应内容类型(Content-Types) Accept: text/plain
Authorization
用于表示HTTP协议中需要认证资源的认证信息 Authorization: Basic OSdjJGRpbjpvcGVuIANlc2SdDE==
Cache-Control
用来指定当前的请求/回复中的,是否使用缓存机制。 Cache-Control: no-cache
Cookie
由之前服务器通过Set-Cookie(见下文)设置的一个HTTP协议Cookie Cookie: $Version=1; Skin=new;
Host
表示服务器的域名以及服务器所监听的端口号。如果所请求的端口是对应的服务的标准端口(80),则端口号可以省略。 Host: www.itbilu.com:80 Host: www.itbilu.com
Origin
发起一个针对跨域资源共享的请求(该请求要求服务器在响应中加入一个Access-Control-Allow-Origin的消息头,表示访问控制所允许的来源)。 Origin: http://www.itbilu.com
User-Agent
浏览器的身份标识字符串 User-Agent: Mozilla/……
2】响应头
Access-Control-Allow-Origin
指定哪些网站可以跨域源资源共享 Access-Control-Allow-Origin: *
Cache-Control
通知从服务器到客户端内的所有缓存机制,表示它们是否可以缓存这个对象及缓存有效时间。其单位为秒 Cache-Control: max-age=3600
Content-Length
响应消息体的长度,用8进制字节表示 Content-Length: 348
Server
服务器的名称 Server: nginx/1.6.3
Set-Cookie
设置HTTP cookie Set-Cookie: UserID=itbilu; Max-Age=3600; Version=1
Status
通用网关接口的响应头字段,用来说明当前HTTP连接的响应状态 Status: 200 OK
3、常见的一些HTTP状态码
1】2开头 (请求成功)
200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页
201 (已创建) 请求成功并且服务器创建了新的资源
2】3 开头 (请求被重定向)
301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
304 (未修改/缓存) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
3】4开头 (请求错误)
400 (错误请求) 服务器不理解请求的语法(参数缺失)
401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应
403 (禁止) 服务器拒绝/禁止请求
404 (未找到) 服务器找不到请求