[HTTP协议]HTTP报文入门

HTTP协议:

        1.无连接:每次只处理一个请求,服务器处理完一个http请求后自动断开链接
        2.无状态:每次请求都是独立的,不会保留前后请求的数据.如果需要前后请求的数据必须重新传递
        3.灵活:可以传输任意类型的数据, 传输的类型由contentType指定    

HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。

TCP短连接长连接都由客户端发起,而TCP长连接的保活功能主要为服务器应用提供。如果客户端已经消失而连接未断开,则会使得服务器上保留一个半开放的连接,而服务器又在等待来自客户端的数据,此时服务器将永远等待客户端的数据。保活功能就是试图在服务端器端检测到这种半开放的连接。也因为短连接、长连接的实现在HTTP之外,与HTTP无关,从HTTP自身来看,HTTP依然是无连接的。  
HTTP报文:

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gdXQMwAX-1575511475742)(en-resource://database/2983:0)]

在这个浏览器发出的请求报文里,第一行“GET / HTTP/1.1”就是请求行,而后面的“Host”“Connection”等等都属于 header,报文的最后是一个空白行结束,没有 body。

请求行:

了解了 HTTP 报文的基本结构后,我们来看看请求报文里的起始行也就是请求行(request line),它简要地描述了客户端想要如何操作服务器端的资源。

请求行由三部分构成:

      请求方法:是一个动词,如 GET/POST,表示对资源的操作;
      请求目标:通常是一个 URI,标记了请求方法要操作的资源;
      版本号:表示报文使用的 HTTP 协议版本。

这三个部分通常使用空格(space)来分隔,最后要用 CRLF 换行表示结束。

请求行格式

GET / HTTP/1.1
状态行:

看完了请求行,我们再看响应报文里的起始行,在这里它不叫“响应行”,而是叫“状态行”(status line),意思是服务器响应的状态

比起请求行来说,状态行要简单一些,同样也是由三部分构成:

 版本号:表示报文使用的 HTTP 协议版本;
 状态码:一个三位数,用代码的形式表示处理的结果,比如 200 是成功,500 是服务器错误;
 原因:作为数字状态码补充,是更详细的解释文字,帮助人理解原因。   

状态行格式

HTTP/1.1 200 OK
HTTP/1.1 400 Not Found
头部字段:

请求行或状态行再加上头部字段集合就构成了 HTTP 报文里完整的请求头或响应头,这里有两个示意图,可以看一下。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值