彻底搞懂HTTP

什么是协议?

协议是一种语言,也是一种约定好的规则。 那么使用HTTP协议,机器就能像人一样,使用双方都理解的语言(协议)进行交流(通信)。

HTTP协议是专门用于客户端(浏览器)和服务端进行通信而设计。

请求报文 和 响应报文

当我们输入网站路径在打开一个页面时,浏览器在内部就会将 网站路径 按照 HTTP协议 转化为 请求报文 发送给服务器;当服务器处理之后发送内容给客户端时,要把内容 按照 HTTP协议 转化为 相应报文,浏览器解析响应报文 呈现页面内容。

因此 问题的关键就在于理解 HTTP协议是如何 转化为 请求报文 和 响应报文的。

下面在浏览器输入URL:https://news.baidu.com/guonei?name=11,打开调试工具,分别查看:Request HeadersResponse Headers,分别点击View Source 查看原始报文。

Request Headers(请求报文)

GET /guonei?name=11 HTTP/1.1
Host: news.baidu.com
Connection: keep-alive
......

GET /guonei?name=11 HTTP/1.1:请求首行

  • GET:请求方法,常见的有 GET POST PUT DELETE
  • /guonei?name=11:请求路径和参数,在域名后边,所有的请求路径以/开头;所有的参数以?开头
  • HTTP/1.1:使用的语言 和 版本号

在请求首行下面的都是请求首部字段,下面的字段根据HTTP协议的定义代表固定的含义:
比如,Host:表示访问的域名;Connection:表示进行长连接…

当有请求体时,请求体数据会和上边的请求首部字段 隔行放置。请求体的的格式也有好几种常用的有:JSON格式、form-urlencoded格式、formData。

GET /guonei?name=11 HTTP/1.1
Host: news.baidu.com
Connection: keep-alive

{"username": "	胡三疯", "gender": "男"}  // SON格式
username=胡三疯&gender=男    // orm-urlencoded格式

Request Headers(相应报文)

响应报文其实格式上和请求报文是一致的,无非就是 报文字段可能不同而已

HTTP/1.1 200 OK          // 使用的语言 和 版本号  响应码 相应描述
Connection: keep-alive
Content-Encoding: gzip

参考资料

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值