简述 HTTP 是什么?

428 阅读3分钟

什么是http?

根据维基的解释是:

超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点。

怎么理解这个概念?超文本传输协议?到底是什么?

首先 它是一个传输协议,通俗点讲就是把数据从一个地方传输到另外个地方的一种方法规范,大家都按照这个规范在网络里传输数据。而这种大家都遵守的规范变成了协议。

其次 什么是超文本呢?

超文本 是一种可以显示在计算机显示器或其他电子设备的文本及与文本相关的内容,其中的文字包含有可以链接到其他字段或者文档的超链接,允许从当前阅读位置直接切换到超链接所指向的文字

原理

HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。

执行流程

  • 客户端(浏览器)通过url 发送请求,例如 www.baidu.com ,baidu.com会通过DNS(域名解析服务器)解析出对应的ip地址。
  • tcp/ip 把ip 加到数据中传输到以太网中。
  • 经过tcp 3次握手后 建立tcp连接
  • 服务器响应客户端。

HTTP 特点

  • 1.支持客户/服务器模式。
  • 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  • 3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  • 4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  • 5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

历史

HTTP/0.9

最早版本是1991年发布的0.9版。该版本极其简单,只有一个命令GET。

GET /index.html

上面命令表示,TCP 连接(connection)建立后,客户端向服务器请求(request)网页index.html。

协议规定,服务器只能回应HTML格式的字符串,不能回应别的格式。

<html>
  <body>Hello World</body>
</html>

服务器发送完毕,就关闭TCP连接。