HTTP请求模型简介

HTTP基本原理(简介) 阅读详情
一、连接至Web服务器
一个客户端应用(如Web浏览器)打开到Web服务器的HTTP端口的一个套接字(缺省为80)。

例如: http://www.myweb.com:8080/index.html
在Java中,这将等同于代码:
Soceet socket=new Socket("www.myweb.com",8080);
InputStream in=socket.getInputStream();
OutputStream out=socket.getOutputStream();

二、发送HTTP请求
通过连接,客户端写一个ASCII文本请求行,后跟0或多个HTTP头标,一个空行和实现请求的任意数据。
一个请求由四个部分组成:请求行、请求头标、空行和请求数据
1.请求行:请求行由三个标记组成:请求方法、请求URI和HTTP版本,它们用空格分隔。
例如:GET /index.html HTTP/1.1
HTTP规范定义了8种可能的请求方法:
GET            检索URI中标识资源的一个简单请求
HEAD            与GET方法相同,服务器只返回状态行和头标,并不返回请求文档
POST            服务器接受被写入客户端输出流中的数据的请求
PUT            服务器保存请求数据作为指定URI新内容的请求
DELETE            服务器删除URI中命名的资源的请求
OPTIONS        关于服务器支持的请求方法信息的请求
TRACE            Web服务器反馈Http请求和其头标的请求
CONNECT        已文档化但当前未实现的一个方法,预留做隧道处理
2.请求头标:由关键字/值对组成,每行一对,关键字和值用冒号(:)分隔。
请求头标通知服务器有关于客户端的功能和标识,典型的请求头标有:
User-Agent        客户端厂家和版本
Accept            客户端可识别的内容类型列表
Content-Length    附加到请求的数据字节数
3.空行:最后一个请求头标之后是一个空行,发送回车符和退行,通知服务器以下不再有头标。
4.请求数据:使用POST传送数据,最常使用的是Content-Type和Content-Length头标。

三、服务端接受请求并返回HTTP响应
Web服务器解析请求,定位指定资源。服务器将资源副本写至套接字,在此处由客户端读取。
一个响应由四个部分组成;状态行、响应头标、空行、响应数据
1.状态行:状态行由三个标记组成:HTTP版本、响应代码和响应描述。
HTTP版本:向客户端指明其可理解的最高版本。
响应代码:3位的数字代码,指出请求的成功或失败,如果失败则指出原因。
响应描述:为响应代码的可读性解释。
例如:HTTP/1.1 200 OK
HTTP响应码:
1xx:信息,请求收到,继续处理
2xx:成功,行为被成功地接受、理解和采纳
3xx:重定向,为了完成请求,必须进一步执行的动作
4xx:客户端错误:
2.响应头标:像请求头标一样,它们指出服务器的功能,标识出响应数据的细节。
3.空行:最后一个响应头标之后是一个空行,发送回车符和退行,表明服务器以下不再有头标。
4.响应数据:HTML文档和图像等,也就是HTML本身。

四、服务器关闭连接,浏览器解析响应
1.浏览器首先解析状态行,查看表明请求是否成功的状态代码。
2.然后解析每一个响应头标,头标告知以下为若干字节的HTML。
3.读取响应数据HTML,根据HTML的语法和语义对其进行格式化,并在浏览器窗口中显示它。
4.一个HTML文档可能包含其它需要被载入的资源引用,浏览器识别这些引用,对其它的资源再进行额外的请求,此过程循环多次。

五、无状态连接
HTTP模型是无状态的,表明在处理一个请求时,Web服务器并不记住来自同一客户端的请求。

六、实例
1.浏览器发出请求
GET /index.html HTTP/1.1
服务器返回响应
HTTP /1.1 200 OK
Date: Apr 11 2006 15:32:08 GMT
Server: Apache/2.0.46(win32)
Content-Length: 119
Content-Type: text/html

<HTML>
<HEAD>
<LINK REL="stylesheet" HREF="index.css">
</HEAD>
<BODY>
<IMG SRC="image/logo.png">
</BODY>
</HTML>

2.浏览器发出请求
GET /index.css HTTP/1.1
服务器返回响应
HTTP /1.1 200 OK
Date: Apr 11 2006 15:32:08 GMT
Server: Apache/2.0.46(win32)
Connection: Keep-alive, close
Content-Length: 70
Content-Type: text/plane

h3{
    font-size:20px;
    font-weight:bold;
    color:#005A9C;
}

3.浏览器发出请求
GET image/logo.png HTTP/1.1
服务器返回响应
HTTP /1.1 200 OK
Date: Apr 11 2006 15:32:08 GMT
Server: Apache/2.0.46(win32)
Connection: Keep-alive, close
Content-Length: 1280
Content-Type: text/plane

{Binary image data follows}


(附录)
1.HTTP规范:Internet工程制定组织(IETF)发布的RFC指定Internet标准,这些RFC被Internet研究发展机构广泛接受。因为它们是标准文档,故一般用正规语言编写,如立法文标一样。
2.RFC:RFC一旦被提出,就被编号且不会再改变,当一个标准被修改时,则给出一个新的RFC。作为标准,RFC在Internet上被广泛采用。
3.HTTP的几个重要RFC:
    RFC1945    HTTP 1.0 描述
    RFC2068    HTTP 1.1 初步描述
    RFC2616    HTTP 1.1 标准
4.资源标识符URI(Uniform Resource Identifter,URI)
 
Go Web——HTTP协议 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 阅读详情

相关推荐

HTTP的请求模型

关于web网站,我们是怎样获得信息的,http请求原理模型又是怎样是现实的?

http 请求流程,网络的七层模型

http 请求加上 tcp 头部,包括源端口号,目的端口号和用于校验数据完整性的序号,向下传输【这里的上下是计算机网络模型中抽象的上下】服务器主机传输层收到数据包,解析 tcp 头部,识别端口,识别数据部分,向上传输到应用层。网络层在数据包上加上 ip 头部,包括源 ip 地址和目的 ip 地址,向下传输。服务器主机网络层收到数据包,解析 ip 头部,识别数据部分,向上传输。这里面有个面试题,网络的OSI 七层模型 和 五层模型分别是那些?响应数据原路返回应用层-传输层-网络层-网络层-传输层-应用层。

有一棵树的博客 1004

EEG | CHB-MIT癫痫数据集CNN分类实战(一)

CHB-MIT癫痫数据集CNN分类实战

Always learn from the best. 1万+

HTTP协议

HTTP协议简介 通信: 信息的传递和交换 通信三要素: 通信的主体 通信的内容 通信的方式 通信协议: 通信协议是指通信的双方完成通信所必须遵守的规则和约定 网页内容又叫做超文本,因此网页内容的传输协议又叫做超文本传输协议,简称HTPP协议 HTTP协议: 超文本传送协议,规定了客户端与服务器之间进行网页内容传输时,必须遵守的传输格式 客户端要以HTTP协议要求的格式把数据提交到服务器 服务器要以HTTP协议要求的格式把内容响应给客户端 HTTP协议的交互模型 HTTP协议采用了

c_perfectworld的博客 346

《数据分析岗笔试高频题:字节常用的SQL与AB测试考题解析》

• 核心考点:用RANK()/DENSE_RANK()/ROW_NUMBER()排序,SUM() OVER()计算累积值。◦ 用公式n=2*(Zα/2+Zβ)^2*σ²/δ²,取α=0.05,β=0.2,计算得每组需260人;◦ 关注字节技术公众号“字节跳动数据团队”,学习真实AB测试案例(如“推荐算法优化实验”)。• 题型分布:SQL编程题(40%)、AB测试方案设计(30%)、数据洞察题(30%);◦ 牛客网“字节跳动SQL真题”(如“统计用户7日留存”“广告投放ROI计算”)。

2501_91651594的博客 1108

DC-DC电源PCB布局实战:从EMI优化到热管理

本文深入探讨了DC-DC电源PCB布局的核心实战技巧。文章从分析电流环路入手,强调通过优化“黄金三角”布局以最小化环路面积,从而有效抑制EMI并提升效率。详细阐述了功率器件摆放、地线分割、敏感信号布线、电感下方铺铜策略以及热管理设计等关键步骤,为工程师提供了一套从理论到实践的完整布局指南。

z5a6b的博客 722

HTTP请求模型

一、连接至Web服务器 一个客户端应用(如Web浏览器)打开到Web服务器的HTTP端口的一个套接字(缺省为80)。 例如:http://www.myweb.com:8080/index.html 在Java中,这将等同于代码: Soceetsocket=newSocket("www.myweb.com",8080); InputStreamin=socket.g...

aaxd0402的博客 153

节省人力成本40%!仓储物流AI机器人调度系统实战案例(含路径规划算法与系统架构图)

首先,我们需要定义一个Node类self.x = x # 节点x坐标self.y = y # 节点y坐标self.g = g # 从起点到当前节点的实际成本(g值)self.h = h # 从当前节点到终点的启发式成本(h值)self.f = g + h # 总成本(f值)self.parent = None # 父节点(用于回溯路径)self.task_id = task_id # 任务IDself.priority = priority # 任务优先级(1=最高,5=最低)

小程序开发 950

http协议学习系列

1. 基础概念篇 1.1 介绍   HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中

JX_yang_zhi的专栏 950

Educoder:爬虫实战——求是网周刊文章爬取

第1关:获取新闻url importrequests importre defgeturls(): #**********Begin**********# url='http://www.qstheory.cn/dukan/qs/2014/2019-01/01/c_1123924172.htm' headers={ 'User-Agent':'Mozilla/5.0(Linux;Android6.0;Nexus5Buil...

weixin_46026136的博客 5254

利用恒源云在云端租用GPU服务器训练YOLOv10模型(包括Linux系统命令讲解)

为当涉及到深度学习的训练任务时,GPU的计算能力是不可或缺的。相对于传统的中央处理器(CPU),图形处理器(GPU)具有更强大的并行计算能力,能够显著加速深度学习模型的训练过程。深度学习算法通常涉及大量的矩阵运算和张量操作,而GPU的并行计算架构使得它们能够高效地执行这些计算,从而加速模型训练的速度。恒源云是一个经济高效的云计算平台,您可以通过恒源云的控制台或者命令行界面来管理实例、上传和下载数据、执行训练任务等。

Snu77的博客 1891

HTTP请求模型简介(转)

一、连接至Web服务器一个客户端应用(如Web浏览器)打开到Web服务器的HTTP端口的一个套接字(缺省为80)。例如:http://www.myweb.com:8080/index.html在Java中,这将等同于代码:Soceet socket=new Socket("www.myweb.com",8080);InputStream in=socket.getInputStream();O...

先相信你自己,然后别人才会相信你。 222

华为OD机试双机位C卷-MVP争夺战 (C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【MVP争夺战】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - MVP争夺战,

qq_45776114的博客 1172

HTTP基础

HTTP(Hypertext Transfer Protocol)是一种用于在互联网上传输数据的协议。它是一种客户端-服务器协议,用于在Web浏览器(客户端)和Web服务器之间传递请求和响应数据。HTTP通常用于获取和显示网页内容,但也可用于传输其他类型的数据,如图像、音频、视频和文本文件。HTTP工作的基本原理是客户端发送HTTP请求,然后服务器响应该请求。

k010908的博客 204

如何在SpringBoot中实现AI 流式输出?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1484

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

关于HTTP协议,一篇就够

关于HTTP协议,一篇就够

Jaemon 467

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: Jakarta Commons项目组介绍(二)
下一篇: 让totem在beryl下使用x11视频输出
ariest
博客等级 码龄19年 2粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值