HTTP 请求/响应的步骤

  • 第一步:
  • 第二步:
  • 第三步:
  • 第四步:
  • 第五步

第一步:

1.客户端连接到Web服务器

⼀个HTTP客户端,通常是浏览器,与Web服务器的HTTP端⼝(默认为80)建⽴⼀个TCP套接字连接。
例如:http://www.baidu.com。

第二步:

2.发送HTTP请求

通过TCP套接字,客户端向Web服务器发送⼀个⽂本的请求报⽂,⼀个请求报⽂由请求⾏、请求头部、空⾏和请求数据4部分组成。

第三步:

3.服务器接受请求并返回HTTP响应

Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。⼀个响应由状态⾏、响应头部、空⾏和响应数据4部分组成。

第四步:

4.释放TCP连接

在HTTP/1.0中默认使⽤短连接。也就是说,客户端和服务器每进⾏⼀次HTTP操作,就建⽴⼀次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web⻚中包含有其他的Web资源(如JavaScript⽂件、图像⽂件、CSS⽂件等),每遇到这样⼀个Web资源,浏览器就会重新建⽴⼀个HTTP会话。
       ⽽从HTTP/1.1起,默认使⽤⻓连接,⽤以保持连接特性。使⽤⻓连接的HTTP协议,会在响应头加⼊这⾏
代码:

Connection:keep-alive

在使⽤⻓连接的情况下,当⼀个⽹⻚打开完成后,客户端和服务器之间⽤于传输HTTP数据的TCP连接不
会关闭,客户端再次访问这个服务器时,会继续使⽤这⼀条已经建⽴的连接。Keep-Alive不会永久保持连接,它有⼀个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现⻓连接需要客户端和服务端都⽀持⻓连接。
       HTTP协议的⻓连接和短连接,实质上是TCP协议的⻓连接和短连接。

第五步

5.客户端浏览器解析HTML内容

客户端浏览器⾸先解析状态⾏,查看表明请求是否成功的状态代码。然后解析每⼀个响应头,响应头告知以下为若⼲字节的HTML⽂档和⽂档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进⾏格式化,并在浏览器窗⼝中显示。

例如:在浏览器地址栏键⼊URL,按下回⻋之后会经历以下流程:

  1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
  2. 解析出 IP 地址后,根据该 IP 地址和默认端⼝ 80,和服务器建⽴TCP连接;
  3. 浏览器发出读取⽂件(URL 中域名后⾯部分对应的⽂件)的HTTP 请求,该请求报⽂作为 TCP 三次握
    ⼿的第三个报⽂的数据发送给服务器;
  4. 服务器对浏览器请求作出响应,并把对应的 html ⽂本发送给浏览器;
  5. 浏览器将该 html ⽂本并显示内容;


HTTP 请求/响应的步骤相关推荐

  1. Servlet基础:接口、类、请求响应、配置、会话追踪、上下文、协作、异常

    10.1 Servlet介绍 ​ Servlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于Java编程语言的Web服务器端编程技术,主要用于在Web服务器端获得客户端的访问请求信息和动 ...

  2. “一切都是消息”--iMSF(即时消息服务框架)之【请求-响应】模式(点对点)...

    MSF的名字是 Message Service Framework 的简称,由于目前框架主要功能在于处理即时(immediately)消息,所以iMSF就是 immediately Message S ...

  3. ajax发送异步请求四个步骤,深入理解ajax异步请求的五个步骤(详细代码)

    在前端工作中,经常会用到ajax,其实很多人只知道ajax是异步请求,不知道应该如何用它,它的基本步骤有哪些,ajax请求过程是怎样的?接下来这篇文章就给大家介绍Ajax的请求步骤,以及ajax请求步 ...

  4. 客户和服务器之间响应的序列,Redis的请求/响应协议和往返时间详解

    Redis是一种采用客户端-服务器(C/S)模型的TCP服务器,这种模型也被称作请求/响应协议. 这就意味着,一个请求通常需要经过以下步骤才能完成: 客户端会向服务器发送一个查询请求,然后从套接字(s ...

  5. Ajax请求的五大步骤——一看就会

    Ajax请求的五大步骤 一.创建请求对象 var xhr = new XMLHttpRequest(); 二.调用open方法,设置请求头和请求路径 xhr.open("get", ...

  6. 使用java解析Infor XA ERP SystemLink请求响应报文

    Infor XA ERP的SystemLink响应报文是一段比较复杂的xml,里面记录了操作是否成功的状态以及操作结果或者错误说明. 对SystemLink解析,就是从响应的xml报文里面解析出操作结 ...

  7. Web请求响应简单整理

    简单对Web请求响应如何处理进行的整理,难免有理解不到位,理解有偏差的地方,如有理解有误的地方,希望大牛批评指正. 1.Web开发的定义 首先看看微软对Web开发的定义: Web开发是一个指代网页或网 ...

  8. java 请求响应_java http接口请求响应 request response

    接口类: 1 package org.sunshine.dcda.epg.wechat.controller.niao; 2 3 import javax.servlet.http.HttpServl ...

  9. nginx log记录请求响应日志及日志分割

    之前部署了quic的集群在aws,在测试的时候发现在大报文的情形下HTTP3的请求耗时比较不稳定,并且耗时比普通的HTTP2要大很多,就想看看请求的具体耗时有多少 请求响应日志记录 我的quic集群是 ...

最新文章

  1. StringUtils.join的用法
  2. 扬州智能机器人项目股票代码_特种智能机器人项目落户前湾新区
  3. C语言写的俄罗斯方块
  4. AI快速入门学习的经验积累-最佳学习路线图谱梳理
  5. 教你破解XP系统Administrator权限
  6. mybatis注解开发使用二级缓存
  7. android预览界面编译出错,Android O预览findViewById编译错误
  8. linux teaming状态命令,Linux 网卡Teaming
  9. unsupported major.monor version 51.0 (unable to load *.servlet)………………
  10. 计算机文字处理员,计算机文字录入处理员
  11. 网络监控解决方案及拓扑图
  12. java异常之-Caused by: java.lang.IllegalStateException: Method has too many Body parameters
  13. 钢铁侠材质制作——2、线条轮廓部分的制作
  14. 最极致Windows仿Mac2.0【win11可用】——30分钟完成(W001)
  15. Java读取docx文档乱码求解决
  16. 利用Maven的War Overlays实现War包资源共享
  17. 毕业设计(课程设计)—个人博客系统(微博)的设计与实现—计算机类专业课程设计(毕业设计)
  18. 王思聪他们家到底是干什么的
  19. 【Orangepi Zero2 全志H616】语音刷抖音 / 手机连接Linux热拔插相关
  20. 服务器托管和服务器租用的区别

热门文章

  1. 随机森林RF程序(MATLAB),解决分类或回归问题。 有例子,易上手,只要换数据就行,保证正常运行
  2. 利用python实现百度竞价自动化效果监控
  3. 梦幻西游一个服务器最多多少人,梦幻西游三维版哪个服务器人多 梦幻西游三维版服务器选择攻略_蚕豆网新闻...
  4. 搜索引擎排名实战经验
  5. cfA. Vova and Train
  6. 【网络攻击手段之-----ARP欺骗】
  7. 第三代酷睿i3处理器_中秋国庆同天百年罕见 十代酷睿轻薄本助力出行
  8. Android系统之路(初识MTK) ------Android11.0给系统相机添加闪光灯低电Toast提醒
  9. PartyBid 学习笔记 之 第二张卡片总结
  10. JS导出Word默认页面视图、横向、分栏、设置固定页眉显示