HTTP 请求/响应的步骤
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,按下回⻋之后会经历以下流程:
- 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
- 解析出 IP 地址后,根据该 IP 地址和默认端⼝ 80,和服务器建⽴TCP连接;
- 浏览器发出读取⽂件(URL 中域名后⾯部分对应的⽂件)的HTTP 请求,该请求报⽂作为 TCP 三次握
⼿的第三个报⽂的数据发送给服务器; - 服务器对浏览器请求作出响应,并把对应的 html ⽂本发送给浏览器;
- 浏览器将该 html ⽂本并显示内容;
HTTP 请求/响应的步骤相关推荐
- Servlet基础:接口、类、请求响应、配置、会话追踪、上下文、协作、异常
10.1 Servlet介绍 Servlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于Java编程语言的Web服务器端编程技术,主要用于在Web服务器端获得客户端的访问请求信息和动 ...
- “一切都是消息”--iMSF(即时消息服务框架)之【请求-响应】模式(点对点)...
MSF的名字是 Message Service Framework 的简称,由于目前框架主要功能在于处理即时(immediately)消息,所以iMSF就是 immediately Message S ...
- ajax发送异步请求四个步骤,深入理解ajax异步请求的五个步骤(详细代码)
在前端工作中,经常会用到ajax,其实很多人只知道ajax是异步请求,不知道应该如何用它,它的基本步骤有哪些,ajax请求过程是怎样的?接下来这篇文章就给大家介绍Ajax的请求步骤,以及ajax请求步 ...
- 客户和服务器之间响应的序列,Redis的请求/响应协议和往返时间详解
Redis是一种采用客户端-服务器(C/S)模型的TCP服务器,这种模型也被称作请求/响应协议. 这就意味着,一个请求通常需要经过以下步骤才能完成: 客户端会向服务器发送一个查询请求,然后从套接字(s ...
- Ajax请求的五大步骤——一看就会
Ajax请求的五大步骤 一.创建请求对象 var xhr = new XMLHttpRequest(); 二.调用open方法,设置请求头和请求路径 xhr.open("get", ...
- 使用java解析Infor XA ERP SystemLink请求响应报文
Infor XA ERP的SystemLink响应报文是一段比较复杂的xml,里面记录了操作是否成功的状态以及操作结果或者错误说明. 对SystemLink解析,就是从响应的xml报文里面解析出操作结 ...
- Web请求响应简单整理
简单对Web请求响应如何处理进行的整理,难免有理解不到位,理解有偏差的地方,如有理解有误的地方,希望大牛批评指正. 1.Web开发的定义 首先看看微软对Web开发的定义: Web开发是一个指代网页或网 ...
- java 请求响应_java http接口请求响应 request response
接口类: 1 package org.sunshine.dcda.epg.wechat.controller.niao; 2 3 import javax.servlet.http.HttpServl ...
- nginx log记录请求响应日志及日志分割
之前部署了quic的集群在aws,在测试的时候发现在大报文的情形下HTTP3的请求耗时比较不稳定,并且耗时比普通的HTTP2要大很多,就想看看请求的具体耗时有多少 请求响应日志记录 我的quic集群是 ...
最新文章
- StringUtils.join的用法
- 扬州智能机器人项目股票代码_特种智能机器人项目落户前湾新区
- C语言写的俄罗斯方块
- AI快速入门学习的经验积累-最佳学习路线图谱梳理
- 教你破解XP系统Administrator权限
- mybatis注解开发使用二级缓存
- android预览界面编译出错,Android O预览findViewById编译错误
- linux teaming状态命令,Linux 网卡Teaming
- unsupported major.monor version 51.0 (unable to load *.servlet)………………
- 计算机文字处理员,计算机文字录入处理员
- 网络监控解决方案及拓扑图
- java异常之-Caused by: java.lang.IllegalStateException: Method has too many Body parameters
- 钢铁侠材质制作——2、线条轮廓部分的制作
- 最极致Windows仿Mac2.0【win11可用】——30分钟完成(W001)
- Java读取docx文档乱码求解决
- 利用Maven的War Overlays实现War包资源共享
- 毕业设计(课程设计)—个人博客系统(微博)的设计与实现—计算机类专业课程设计(毕业设计)
- 王思聪他们家到底是干什么的
- 【Orangepi Zero2 全志H616】语音刷抖音 / 手机连接Linux热拔插相关
- 服务器托管和服务器租用的区别
热门文章
- 随机森林RF程序(MATLAB),解决分类或回归问题。 有例子,易上手,只要换数据就行,保证正常运行
- 利用python实现百度竞价自动化效果监控
- 梦幻西游一个服务器最多多少人,梦幻西游三维版哪个服务器人多 梦幻西游三维版服务器选择攻略_蚕豆网新闻...
- 搜索引擎排名实战经验
- cfA. Vova and Train
- 【网络攻击手段之-----ARP欺骗】
- 第三代酷睿i3处理器_中秋国庆同天百年罕见 十代酷睿轻薄本助力出行
- Android系统之路(初识MTK) ------Android11.0给系统相机添加闪光灯低电Toast提醒
- PartyBid 学习笔记 之 第二张卡片总结
- JS导出Word默认页面视图、横向、分栏、设置固定页眉显示