应用层 HTTP 协议:浏览网页原来有这么复杂的过程

这篇博客介绍了从输入URL到浏览器显示网页的完整HTTP请求过程,包括DNS解析、TCP连接建立、HTTP请求构建与发送、HTTP返回的构建。详细阐述了GET、POST、PUT、DELETE四种HTTP方法,并对比了HTTP1.1与HTTP2.0的区别,强调了HTTP2.0的头压缩、分帧、二进制编码和多路复用等性能提升技术。
摘要由CSDN通过智能技术生成


HTTP 协议几乎是每个人上网用的第一个协议。比如看新闻我们会登录 http://www.163.com

当把 URL 输入到浏览器框里,按下回车

http://www.163.com 是个 URL,叫作统一资源定位符。之所以叫统一,是因为它是有格式的。其中 HTTP 称为协议,www.163.com 是一个域名,表示互联网上的一个位置。由的 URL 会有更详细的位置标识,例如 http://www.163.com/index.html 。正是因为这个东西是统一的,所以当你把这样一个字符串输入到浏览器的框里时,浏览器才知道如何进行统一处理。

HTTP 请求的准备

浏览器会将 www.163.com 这个域名发送给 DNS 服务器,让它解析为 IP 地址。那接下来是发送 HTTP 请求吗?不是,HTTP是基于 TCP 协议的,要先建立 TCP 连接,怎么建立呢?

在目前常使用的 HTTP1.1 中,默认开启了 Keep-Alive 的,这样建立的 TCP 连接,就可以在多次请求中复用。

HTTP 请求的构建

建立了连接以后,浏览器就要发送 HTTP 的请求。请求的格式如下:
在这里插入图片描述
HTTP 的报文大概分为三大部分,第一部分是请求行,第二部分是请求的首部,第三部分才是请求的正文实体。

第一部分:请求行
在请求行中,URL 就是 http://www.163.com , 版本为 HTTP1.1。方法有几种类型:
对于访问网页,最常用的类型是 GET。顾名思义,GET 就是去服务器获取一些资源。对于访问网页来说,要获取的资源往往是一个页面。其实也有很多其他的格式,比如说返回一个 JSON 字符串,到底要返回什么,是由服务器端的实现决定的。

例如,在云计算中,如果服务器端要提供一个基于 HTTP 协议的 API,获取所有云主机列表,这就会使用 GET 方法获得,返回的可能是一个人 JSON 字符串。字符串里面是一个列表,列表里面是一项的云主机信息。

另外一种类型叫作 POST。它需要主动告诉服务端一些信息,而非获取。要告诉服务端什么呢?一般会放在正文里。正文可以由各种各样的格式。常见的格式也是 JSON。

再如,在云计算里,如果我们的服务端,要提供一个基于 HTTP 协议的创建云主机的 API,也会用到 POST 方法ÿ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值