HTTP(HyperText Transfer Protocol,超文本传输协议)最早就是计算机与计算机之间沟通的一种标准协议,这种协议限制了通讯内容的格式以及各项内容的含义。
随着时代的发展,技术的变迁,这种协议现在广泛的应用在各种领域,也不仅仅局限于计算机与计算机之间,手机、电视等各种智能设备很多时候都在使用这种协议通讯,所以一般现在称 HTTP 为端与端之间的通讯协议。
Web 属于 B/S 架构的应用软件,在 B/S 架构中,浏览器与服务器沟通的协议就是 HTTP 协议,作为一个合格的Web 开发者,了解 HTTP 协议中约定的内容是一门必修课。
http请求响应流程
客户端通过随机端口与服务端某个固定端口(一般为80)建立连接 三次握手
客户端通过这个连接发送请求到服务端(这里的请求是名词)
服务端监听端口得到的客户端发送过来的请求
服务端通过连接响应给客户端状态和内容
如果你觉得仅仅是描述性文字,不够直观,那http请求响应的再细致划分,增添上对服务端的说明,可以用这个插画示意:
如果你仍觉得,脑海仍是模糊一片,那我们不妨来个具体的例子
现在我们假设,你想打开Github的网站,当你在浏览器中输入Github.com并按下ENTER键后,http完整的响应流程大致如下:
这里我使用的WEB服务器软件是以Apache+PHP搭配为例,
其他的常见类型形如:
Nginx ········································ 反向代理
IIS ·············································· ASP.NET
Tomcat ····································· Java
都可以在上图的基础上替换带入,多画几遍,相信对http的请求响应流程就了然于心。