HTTP协议总论

前言

在TCP协议原理中已经讲过HTTP通讯的完整的一个过程,这里不再将过多的tcp内容,详细见TCP协议原理,这里仅介绍一下tcp的报文和特点.

HTTP定义

http(Hyper Text Transfer Protocol) 超文本传输协议,HTTP是应用层协议,叫做传输协议实际传输是由传输层协议tcp完成的.http协议的数据会封装到tcp的数据部分.

特点:

  • 无状态,http协议不会存储用户信息,如果后续请求需要前面的数据,需要重传或者通过cookie和session来实现存储信息
  • 无连接,http是基于tcp协议的,无连接指的是一次连接只处理一个请求,处理完之后就断开连接,但这样显然会使http在建立tcp和断开tcp上花费大量工作,在http1.1中默认是keep-alive的,也就是保活,但由于连接时并行的,如果一个连接阻塞,这个连接将一直被占用,所有后来又有了多路复用通过steamId来区分的方式.
  • 可扩展,指http请求的头部字段可以扩展,这也就提高了http请求的应用场景.
  • 自描述,http消息可以是多种的,可以是图片,音频,文本等等,这些类型是可以在http头部自己描述的.
  • 以请求应答方式运行

HTTP报文格式

http请求的格式
由请求行,请求头,请求体构成.请求头和请求体之间需要有空行
在这里插入图片描述

http响应格式
由状态行,响应头,响应正文构成,响应头和响应正文之间需要有空行
在这里插入图片描述

HTTP通讯过程

以从浏览器访问http://www.bing.com 为例

  • 通过DNS得到IP,根据浏览器输入的域名www.bing.com(主机名)查询本地(浏览器,host文件,路由器)有无DNS缓存信息,没有缓存将调用DNS协议(详细原理及过程见DNS协议原理)向DNS服务器查询ip.
  • 建立TCP连接,根据DNS返回的结果获得ip之后, 浏览器与服务器建立TCP连接(详细原理及过程见TCP协议原理)
  • HTTP请求和应答,建立好TCP连接之后,将组装好http报文发起HTTP请求来获取index.html页面
  • TCP断开连接,客户端接收到http响应,回复确认.四次挥手断开连接(可以不断开).
  • 浏览器继续请求其他资源,浏览器解析获取到的html,解析出还需要的资源,如果是静态资源则继续请求资源.如果服务器返回304(服务器未修改资源),浏览器就会读取本地缓存
  • 浏览器渲染,浏览器渲染相应页面信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值