http协议简介

http协议简介

http协议:超文本传输协议 HyperText Transfer Protocol 
web就是建立在http协议之上的。用于客户端(浏览器)和服务端(服务器)之间传输数据,是一种请求,响应的数据模型。


一:协议的基本格式

先看一个实际列子

当我们在浏览器上输入 www.baidu.com 的时候,按下F12,然后回车。 
以chrome浏览器为例,按照上面的操作,然后找到

  • Network -> 找到第一行 www.baidu.com 这个域名 -> 点击域名 -> 查看右边 Headers
  • Headers 下面的 Request Headers ,点击view source,会出现如下所示的内容(http的请求头)

    GET / HTTP/1.1 
    Host: www.baidu.com 
    Connection: keep-alive 
    Cache-Control: max-age=0

  • Headers 下面的 Response Headers ,点击view source,会出现如下所示的内容(http响应头)

    HTTP/1.1 200 OK 
    Cache-Control: private 
    Connection: Keep-Alive 
    Content-Encoding: gzip

上面格式解释

上面的Request Headers中

  • 起始行GET表示请求服务器的类型,称为方法(method), 随后的 / 斜线表示请求服务器的资源,斜线一般表示默认请求服务器的首页index.html或者default.html等,一般由服务器设置,最后的 HTTP/1.1 表示请求的协议是http,版本是1.1。
  • 下面的Host,Connection,Cache-Control 表示请求的头部属性,请求的首部字段

这时候你也许会问,那我们提交搜索的数据在哪里呢? 
好,在输入框中输入 你好 2个字进行搜索, 同样按照上面的步骤,按下F12进行观察,其实在上面的提交中会有这一段

GET / HTTP/1.1 
Host: www.baidu.com 
Connection: keep-alive 
Cache-Control: max-age=0 
ie=utf-8&csq=1&pstg=20&mod=2&isbd=1&cqid=902ac78a000166d9&istc=277&ver=02dxTNAIQrLaje7ap_CI639W2bBrWSCUDIG&chk=5aa67b24&isid=27E4AA0692B22650&wd=%E4%BD%A0%E5%A5%BD&rsv_spt=1&rsv_iqid=0xa47ae6fc000016a4&issp=1&f=3&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=7&rsv_sug1=4&rsv_sug7=100&rsv_t=e6dal9luCwDrB6UKogflrgtWlwBQYVvvZTZc9ctjGuy5aI2HyqGKCyjJmZbFqAPQCNO7

多出了最后一段内容,这个就是请求的内容了,只不过它是通过GET的方式提交的,把 你好 进行了编码,wd这个参数,然后还提交了很多其他的参数

上面的Response Headers中

  • 起始行开头 HTTP/1.1 表示服务器对应的HTTP协议版本,紧接着的 200 OK 表示处理的结果状态码和简单的原因,后面的Cache-Control,Connection,Content-Encoding 这些都是返回的头部字段属性

实际上后面还有返回的内容,就是搜索的结果,内容和头部属性会以一行空格来隔开,这个内容称为资源实体

以上实际就是http的报文格式了

二:http报文格式

报文格式请求报文响应报文
报文首部 GET / HTTP/1.1
Host: www.baidu.com 
Connection: keep-alive 
Cache-Control: max-age=0
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Encoding: gzip
空行(CR+LF)    
报文主体 ie=utf-8&csq=1&pstg=20&mod=2 服务器返回的内容

三:返回的status code

codemessage
2xx 响应结果表明被正常处理了
3xx 响应结果表明浏览器需要执行一些重定向请求
4xx 表示客户端发生错误
5xx 表示服务端发生错误
codemessage
200 ok
301 永久重定向
302 临时重定向
304 304状态码返回时,不包含任何响应的主体部分内容
307 临时重定向。和302有着相同的含义。307会遵照浏览器标准,不会从POST变成GET
400 请求中存在语法错误
401 表示发送的请求需要通过http认证。如果之前认证过一次,则表示认证失败
403 表示请求资源访问被服务器拒绝了
404 表示服务器上无法找到该资源
500 表示服务器执行请求时发送错误
503 表明服务器超载了,无法完成请求

四:http请求的方法

methodmessage支持的协议版本
GET 获取资源 1.0、 1.1
POST 用来传输实体 1.0、 1.1
PUT 用来传输文件 1.0、 1.1
HEAD 返回报文首部信息 1.0、 1.1
DELETE 删除文件 1.0、 1.1
OPTIONS 询问支持的方法 1.1
TRACE 追踪路径 1.1
CONNECT 与代理服务器通信时建立隧道 1.1
LINK 建立和资源之间的联系 1.0
UNLINK 断开连接关系 1.0
== just do it ==
原文地址:https://www.cnblogs.com/jiujuan/p/8867476.html