http请求响应流程详解

HTTP(HyperText Transfer Protocol,超文本传输协议)是限制了通讯内容的格式以及各项内容的含义的一种标准协议。

请注意,本文编写于 193 天前,最后修改于 46 天前,其中某些信息可能已经过时。

HTTP(HyperText Transfer Protocol,超文本传输协议)最早就是计算机与计算机之间沟通的一种标准协议,这种协议限制了通讯内容的格式以及各项内容的含义。
随着时代的发展,技术的变迁,这种协议现在广泛的应用在各种领域,也不仅仅局限于计算机与计算机之间,手机、电视等各种智能设备很多时候都在使用这种协议通讯,所以一般现在称 HTTP 为端与端之间的通讯协议。
Web 属于 B/S 架构的应用软件,在 B/S 架构中,浏览器与服务器沟通的协议就是 HTTP 协议,作为一个合格的Web 开发者,了解 HTTP 协议中约定的内容是一门必修课。

http请求响应流程

  1. 客户端通过随机端口与服务端某个固定端口(一般为80)建立连接 三次握手
  2. 客户端通过这个连接发送请求到服务端(这里的请求是名词)
  3. 服务端监听端口得到的客户端发送过来的请求
  4. 服务端通过连接响应给客户端状态和内容

如果你觉得仅仅是描述性文字,不够直观,那http请求响应的再细致划分,增添上对服务端的说明,可以用这个插画示意:

web server 有多种选择,常见的有PHP、node、ASP.NET等等
web server 有多种选择,常见的有PHP、node、ASP.NET等等

如果你仍觉得,脑海仍是模糊一片,那我们不妨来个具体的例子
现在我们假设,你想打开Github的网站,当你在浏览器中输入Github.com并按下ENTER键后,http完整的响应流程大致如下:
1.png
1.png

这里我使用的WEB服务器软件是以Apache+PHP搭配为例,
其他的常见类型形如:

  • Nginx ········································ 反向代理
  • IIS ·············································· ASP.NET
  • Tomcat ····································· Java

都可以在上图的基础上替换带入,多画几遍,相信对http的请求响应流程就了然于心。

添加新评论

已有 7 条评论

qbceHVpW qbceHVpW 回复 @UtyIcpXh

qbceHVpW

qbceHVpW qbceHVpW 回复 @UtyIcpXh

qbceHVpW

给我张纸,闭上眼睛,我要再画一遍

platonic platonic 回复 @platonic

可把你牛p坏了

UtyIcpXh UtyIcpXh 回复 @platonic

UtyIcpXh

UtyIcpXh UtyIcpXh 回复 @platonic

UtyIcpXh