HTTP协议概述
了解了tcp/ip协议群,回头再看http协议就一目了然了:http(HyperText Transfer Protocol,超文本传输协议)只是tcp/ip协议群中的一种,且位于OSI参考模型的应用层。它规定了计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则(其实就是协议的解释),它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。它由请求和响应组成,是一个无状态协议。要说明白http,先得了解超文本和HTML。
1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(说白了就是超链接)。随后又提出了HTML(Hyper Text Mark-up Language,超文本标记语言),通过标记符号来标记要显示的网页中的各个部分,主要结构包括头部 (Head)、主体 (Body) 两大部分,并通过超文本在网页内包含图片、音乐、链接等元素。这哥们组织W3C(World Wide Web Consortium,协调万维网协会)和IETF(Internet Engineering Task Force,互联网工程工作小组)共同合作研究,发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1,这也是我们现在最常用的版本。2015年发布了RFC 7540,HTTP2.0诞生了。
http协议位于tcp协议之上,让我们结合tcp/ip的四层通信模型来看下http:
举个例子:我从本地客户端发起一个请求:https://i.cnblogs.com/EditPosts.aspx?postid=9391810,想要去博客园服务器获取本篇帖子这个资源。在应用层首先dns协议会将域名解析为ip,请求url经过http协议处理变成了请求报文(包含消息头和消息体),接着进入传输层的tcp协议,把http请求报文进行分割、打序号,带上端口号再转给网络层。网络层的IP协议接手,带上目的地的MAC地址交给链路层。链路层通过传输介质,在网络里找到目的主机后,再将数据逐层上传,最终达到应用层时,服务器才算收到客户端的请求。
http协议如果结合TLS(Transport Layer Security,安全传输层协议)和SSL(Secure Sockets Layer,安全套接层协议),就能变身https。http默认端口是80,https默认端口是443。
以上就是http协议以及与http相关的一些协议。