HTTP简易分析

xiaoxiao2021-02-28  70

下面是一个http的请求头部。可以看到请求头部第一行为请求行(请求方法、请求资源位置、请求协议版本),第二行为请求主机(这个在HTTP/1.1协议中是一定需要的,不然会报400 bad request),接下来则是一些头部配置。

Connection: keep-alive表示该连接为持久连接 Accept: 表示请求方支持的数据类型 Accept-Encoding:表示请求方支持的压缩方式 Accept-Language:表示请求方式支持的语言类型 Cookie:携带用户个人信息,比较重要 User-Agent:表明用户身份 Upgrade-Insecure-Requests:表明是否需要从http转到https

GET / HTTP/1.1 Host: www.baidu.com Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding: gzip, deflate, sdch, br Accept-Language: zh-CN,zh;q=0.8 Cookie: A=B;C=D;E=F;G=H

下面是一个http的返回头部。可以看到返回信息包括协议、返回状态码、具体服务地址、时间、数据类型及数据编码等

Expires:内容过期时间 Connection:表明连接保存长连接 Set-Cookie:设置cookie Transfer-Encoding:chunked,identity,从字面意义可以理解,前者指把要发送传输的数据切割成一系列的块数据传输,后者指传输时不做任何处理,自身的本质数据形式传输。举个例子,如果我们要传输一本“红楼梦”小说到服务器,chunked方式就会先把这本小说分成一章一章的,然后逐个章节上传,而identity方式则是从小说的第一个字按顺序传输到最后一个字结束。 Cache-Control:参看http://www.cnblogs.com/cuixiping/archive/2008/05/04/1181056.html

HTTP/1.1 200 OK Server: bfe/1.0.8.18 Date: Fri, 05 May 2017 13:47:20 GMT Content-Type: text/html;charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Cache-Control: private Expires: Fri, 05 May 2017 13:47:20 GMT Content-Encoding: gzip X-UA-Compatible: IE=Edge,chrome=1 Strict-Transport-Security: max-age=172800 BDPAGETYPE: 2 BDQID: 0xab79c5d30004052b BDUSERID: 794738359 Set-Cookie: A=B Set-Cookie: C=D Set-Cookie: E=F Set-Cookie: G=H

HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文 1、状态行格式如下: HTTP-Version Status-Code Reason-Phrase CRLF 其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。 状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值: 1xx:指示信息–表示请求已接收,继续处理 2xx:成功–表示请求已被成功接收、理解、接受 3xx:重定向–要完成请求必须进行更进一步的操作 4xx:客户端错误–请求有语法错误或请求无法实现 5xx:服务器端错误–服务器未能实现合法的请求 常见状态代码、状态描述、说明: 200 OK //客户端请求成功 400 Bad Request //客户端请求有语法错误,不能被服务器所理解 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden //服务器收到请求,但是拒绝提供服务 404 Not Found //请求资源不存在,eg:输入了错误的URL 500 Internal Server Error //服务器发生不可预期的错误 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

HTTP协议定义的是客户端与服务器互通信息的协议内容。通过设置头部信息,管理并控制双方对数据交互。底层使用tcp协议。考虑到tcp是一种面向连接的协议,而http是一种无连接、无状态的协议。因此http协议通过头部信息的设置控制http协议的传输过程。包括缓存控制,状态控制,连接控制,传输控制。这些内容稍后细谈。

待续……

转载请注明原文地址: https://www.6miu.com/read-42158.html

最新回复(0)