HTTP概述

域名详解与web概述及HTTP协议概述 客户端输入域名,经域名解析成IP地址,在与服务端建立数据传输之前,要先建立TCP连接(三次握手),然后向服务端发送http请求,包括请求的方法、内容相应的版本号,服务端收到后进行相应,包括状态码,也就是请求的结果,完成一次客户端的http请求后断开TCP连接(四次挥手),此时服务器处于TCP连接的time_wait状态。 阅读详情

场景:想象一下你是木叶村的火影,现在你想同砂忍村的风影建交。你必须指派一名忍者来传达建交文书,为确保文书的完好,你指派的忍者必须非常可靠,无论遇到多么危险的情况,都能准确完好地将文书传达到风影手里。这名忍者叫卡卡西,啊不,叫HTTP(数据传输协议)。

现在知道了吧,HTTP就是一个可靠的信使。即使你在北极,将数据传达到南极,HTTP也会完整地将数据传递过去。

在Web世界中,不是影和影的建交,而是客户端和服务器的交流。因此,HTTP就是这两只之间送信跑腿的。简单的流程就是:客户端指派一名HTTP,带着文书(报文)去服务器那提出请求,服务器处理请求后,又指派一名HTTP带着处理结果的文书(报文)回到客户端。

具象化就是:你在浏览器中(客户端)输入http://www.zhihu.com/index.html。翻译过来就是:你指派一个http,前去一个人称www.zhihu.com的影(服务器主机)那,要一个叫作index.html卷轴。如果成功了,这个影就会将这份卷轴的详细信息做出一个文书(报文),派一个HTTP送回到你的浏览器你中。

说一下资源,能产生内容的就是资源。资源可以是静态的文本,图片,视频,反正就是有用的东西。像上面的http://www.zhihu.com/index.html就是一个资源。
Web内容都是存储在Web服务器里的,而资源产生内容。因此Web服务器其实就是装各种资源的大金主啊。

对于每一个资源,当然应该要有名字来称呼它,否则怎么能精确地找出你想要的是哪个资源呢?所以,我们就有了URI(统一资源标识符),标识就是名字的意思。URI又有2这种格式,一种是根据位置定位来称呼的,比如小明家的地址是幸福街189-1号,你就可以用幸福街189-1号来定位小明家。第二种就直接了,直接用名字来命名。想找小明家就输入“小明家”。现在第一种比较普遍和常用,就是我们熟悉的网址(网络上的地址)来定位资源。格式就是

协议+主机名+端口+资源     #没设端口就用默认端口
http://www.zhihu.com/index.html  #这里没设端口,就用默认端口

请求方法(客户端的命令)

身为客户端,当你派出一名HTTP去服务器那时,你不可能什么都不嘱咐的,你必须得告诉服务器你想要的是什么。你可以传达5种命令给服务器

  1. GET 获取数据
  2. POST 提交数据给服务器,用于表单
  3. PUT 创建或修改资源
  4. DELETE 删除资源
  5. HEAD 获取响应的首部

状态码(服务器的响应)

对于客户端的请求,服务器会做出处理结果,我们称为状态码。
状态码是一个三位数字的代码,告知客户端请求是否成功。

HTTP状态码描述
200成功处理
302重定向
404没找到

当然,每一个状态码后面会跟着一个原因短语,像:
200 ok
200 Success

报文

上面我们知道,HTTP只是个跑腿的信使,他传达的是他手里的文书,Web世界里叫报文。这些报文作为官方文书,当然要有一定的格式了。

MIME类型

MIME标记多媒体内容,什么图片啊,电影啊,视频啊,文字啊等等。
Web**服务器**会为所有的HTTP对象数据附加一个MIME类型。
意思是服务器的报文封面必须加上一个MIME类型。然后浏览器收到报文后,先看下封面的MIME类型,看看是否是自己需要的,是否是自己能处理的。

MIME印记格式
Content-type = 对象类型/子类型
如Content-type = image/jpeg

来学学各个印记的结印手法

  • HTML文本: text/html
  • ASCII纯文本: text/plain
  • JPEG格式的图片: image/jpeg
  • GIF格式的图片: image/gif
  • Apple的QuickTime电影: video/quicktime

现在来看下报文的格式

起始行
首部
主体

对于客户端来讲

  • 起始行:要做什么 (请求方法,资源名, HTTP版本)
  • 首部:用户代理,主机,接受的格式,语言等
  • 主体:可选的,主要是数据内容(GET不用)

对于服务器来讲

  • 起始行:处理结果(HTTP版本, 状态码, 原因短语)
  • 首部: MIME类型,长度等
  • 主体:响应的数据内容

具体的实例可以自己去看

连接(TCP)

忘了一个很重要的事,上面提到我们有了可靠的信使HTTP能够准确地到达对方那,但是如何能让手中的报文准确地到达对方手里呢?就是说准确地让对方明白我的意思,不能误解我的含义。这时候聪明可靠的信使HTTP使用了一种叫作TCP的方式,他说一句,确认对方完全理解了,再说下一句。直到整个报文读完。这叫做面向连接,即TCP传输控制协议,重点在于“控制”。

我们上面举的例子是通过声音来连接交流的,即
我:你听到我说的话吗?
对方:听到了
我们就建立了连接。

下面是HTTP的方式,建立一个TCP/IP的连接

ADDR = (HOST, PORT) #获取对方的主机名和端口号

主机名端口号怎么获取?浏览器中的网址就包含了主机名和端口
http://www.zhihu.com/index.html
www.zhihu.com 通过DNS(域名服务)来转化为IP地址
端口没有标注的话就用默认端口
通过一个网址就可以获取主机名和端口了。
有了IP地址和端口号,就可以像之前那样通过socket来建立TCP/IP连接

以上便是介绍了Web结构中最重要的两个应用程序(Web浏览器和Web服务器)。

当然也有很多其他的Web应用程序

  • 代理 中介商,接收客户单请求,将请求转发给服务器
  • 缓存 常用的内容存储在离客户端很近的缓存里,方便快捷下载
  • 网关 用于将HTTP流量转换成其他协议,比如FTP
  • 隧道 用于盲转发
  • Agent代理 代表用户发起HTTP请求的客户端程序,如浏览器
浅谈http的基本概述 浅谈http基本概论 阅读详情

相关推荐

小米万兆路由器里的Docker安装可道云(Kodexplorer)私有网盘

小米2022年12月份发布了万兆路由器,里面可以使用Docker。 今天尝试在小米的万兆路由器里安装[可道云](http://kodcloud.com/)(Kodexplorer)私有网盘。

engchina的专栏 1万+

HTTP 概述

HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议)。它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说,请求通常是由像浏览器这样的接受方发起的 一个完整的Web文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等 客户端和服务端通过交换各自的消息(与数据流正好相反)进行交互。由像浏览器这样的客户端发出的消息叫做 requests,被服务端响应的消息叫做 responses 基于HTTP的组件系统 HTTP是一个c

是羊驼呀 444

Scipy优化踩坑实录:trust-constr和SLSQP约束定义到底差在哪?

本文深入解析了Scipy优化模块中trust-constr和SLSQP两种方法在约束定义上的差异。通过对比面向对象的trust-constr和字典式定义的SLSQP,揭示了它们各自的优势与适用场景,帮助开发者在有约束优化问题中选择合适的算法,提升计算效率与准确性。

weixin_42573113的博客 271

【网络】HTTP(超文本传输协议)详解

HTTP是一种应用层协议,属于TCP/IP协议族。它的主要作用是允许客户端(如浏览器)通过网络向服务器请求资源,服务器再将资源返回给客户端。特点无状态:每个请求都是独立的,服务器不保存任何会话信息。这意味着每次请求都需要重新验证。灵活性:HTTP支持多种数据格式,包括文本、图像、音频和视频等,使其适用于各种应用场景。简洁性:HTTP请求和响应的格式简单易懂,便于开发和调试。

人生苦短,睡觉要紧,睡醒再说 17万+

VS2019+CAXACAD2023二次开发教程(一、环境搭建)

CAXACAD2023的二次开发相关文件和库都在的文件夹下。CAXACAD2023的默认开发环境是VS2019,如果是用VS2019的环境话,可以直接安装这个插件,安装好后就可以一键新建的项目,新建的项目会自动帮我们配置好所有的环境,并且生成必要的代码和初始的框架。(本来想用VS2022的,但配置环境太麻烦,用VS2022,增加一个环境变量是可以运行自带的例程的,但新建项目要配置的东西和环境太多,就放弃折腾了)

weixin_42968757的博客 4624

HybridCLR热更新全流程实操:用Addressables实现资源+代码双热更(Unity 2021版)

本文详细介绍了在Unity 2021 LTS版本中,如何结合HybridCLR代码热更新与Addressables资源管理系统,实现资源与代码的双热更解决方案。通过环境配置、技术架构设计、实战案例和性能优化,帮助开发者解决中大型项目中的依赖管理和版本协同问题,提升游戏迭代效率。

cc789的博客 848

HTTP超详细介绍

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是一种详细规定了【浏览器】和万维网(WWW:World Wide Web)【服务器】之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。说白了就是:HTTP协议就是浏览器和服务器之间进行“沟通”的一种【规范/约束】。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件,图片文件,查询结果等)。

一个认真学习的女孩子的博客 4918

【Python搞定车载自动化测试】——Python实现车载以太网DoIP刷写(含Python源码)

随着智能电动汽车行业的发展,汽车=智能终端+四个轮子,而人工智能也发展越来越快,Python语言使用越来越广,本章节主要介绍如何使用Python语言基于Pytest自动化框架来实现DoIP诊断自动化测试。首先回顾一下DoIP诊断基础知识:DoIP(Diagnosis over Internet Protocol)是一种用于车辆诊断的网络通信协议。它基于现代互联网技术,允许通过以太网或IP网络进行车辆诊断和通信。

测试领域技术分享 3797

菜鸟笔记之计算机网络(3)

万维网了解万维网 声明:以下是看的视频并结合网上资料所记的笔记,侵权请联系删除。可能会有一些错误,发现了会修改。 了解万维网

lb4f2525的博客 656

【YOLOv11多模态融合改进】| CVPR2025 LCA轻量交叉注意力 双向模态交叉引导 + 双支路噪点抑制,兼顾纹理与热目标特征融合

可见光模态富含纹理、色彩、边缘细节,但夜间/低照度场景信噪比极低,暗区噪声泛滥;红外模态依靠热辐射凸显弱小目标、暗区物体轮廓,但缺失真实色彩与精细纹理。简单拼接/逐加融合仅做浅层特征叠加,无法建立可见光纹理、红外热特征的双向引导关联,两类模态互补信息无法精准互通;普通自注意力仅单模态内部建模,跨模态交互匮乏,红外热目标易被可见光暗噪声淹没,可见光有效纹理易被红外灰度信息覆盖;

Limiiiing的博客 121

boost::circular_buffer缓行缓冲区

1、circular_buffer实现了一个环形缓冲区,空间大小是固定的,当到达容器末尾时,将自动利用容器另一端的位置空间。 2、当程序需要容纳大量的元素,但多数情况下仅保存较少数量元素时可以使用circular_buffer_space_optimized,他可以有效的减少内存的占用,提高程序的运行效率。 3、主要接口: 4、实现一个生产者---消费者模式示例: #inc...

小米的修行之路 792

HTTP基本概述

HTTP报文分为请求报文和响应报文两种格式。请求报文包含请求行、请求头、空行和可选的请求体,常用方法有GET、POST等;响应报文包含状态行、响应头、空行和响应体。HTTP协议支持短连接和长连接,其中长连接可复用TCP连接提高效率。HTTP默认端口为80(HTTP)和443(HTTPS)。报文头部与主体间用空行分隔,GET请求通常不带请求体。HTTP方法具有安全和幂等特性,如GET是安全且幂等的。URI用于标识资源,URL是URI的子集,包含定位信息。HTTP/1.1默认采用长连接,但存在队头阻塞问题。

2302_81116822的博客 933

【推荐100个unity插件】帮助你快速开发一款FPS游戏—— FPS Framework

FPS Framework 快速入门指南 FPS Framework 是一个 Unity 开发框架,可加速 FPS 游戏开发。主要功能包括: 第一人称控制器:基于 Character Controller 实现,提供移动、跳跃、下蹲等功能,支持自定义参数调整 渲染管线转换:内置 RP 转换器,支持 URP/HDRP 等渲染管线一键切换 库存系统: 采用双列表管理:物品列表(Items)和可收集物列表(Collectables) 支持自定义库存物品和可收集物类型 提供拾取/丢弃功能实现 快速开始: 通过预制件

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2571

HTTP 协议概述

HTTP 协议概述 HTTP概述 HTTP 被设计于20世纪90年代初期,是一种可扩展的协议。通过 TCP, 或者是 TLS 加密的 TCP 连接来发送,理论上任何可靠的传输协议都可以使用。 因为其良好的扩展性,时至今日,它不仅被用来传输超文本文档,还用来传输图片、视频或者向服务器发送如HTML表单这样的信息。HTTP还可以根据网页需求,仅获取 部分Web文档内容更新网页。 基于HTTP的组件系统 HTTP是一个client-server协议:请求通过一个实体被发出,实体也就是用户代理。大

qq_18801027的博客 248

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

http 概念概述

文章目录1.1 http是可靠、无状态的1.2 Web客户端和服务器1.3 资源——一切1.41.5 媒体类型1.6 URI1.7 事务1.8 方法1.9 状态码1.11 报文1.12 协议版本Web的结构租借参考文献 1.1 http是可靠、无状态的 1.2 Web客户端和服务器 1.3 资源——一切 1.4 1.5 媒体类型 1.6 URI 1.7 事务 1.8 方法 1.9 状态码 1.1...

wobushixiaobailian的博客 1244

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

一、http协议概述

目录一、http协议概述二、http协议请求的常用方法三、http协议状态码四、Postman五、Chrome调试工具 一、http协议概述 http协议全称超文本传输协议,大家只要把它理解成为一个服务器与客户端通信的协议即可。 在http协议的约定下,客户端可以向服务器发送请求,服务器在接收到请求之后,给予客户端响应。 二、http协议请求的常用方法 本节我们讲解http协议常用的四种方法,用...

weixin_46261309的博客 377

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

HTTP请求头概述

HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并不是必需的,但Content-Length除外。对于POST请求来说Content-Length必须出现。下面是一些最常见的请求头    Accept:浏览器可接受的MIME类型。    Accept-Charset:浏览器

To be better everyday 800

Web和http协议概述

1、网络是基于TCP/IP协议进行通信二行连接的,每一台主机都有一个唯一的标识(固定的IP地址),用以区别在网络上成千上万个用户和计算机。网络在区分所有与之相连的网络和主机时,均采用一种唯一、通用的地址格式。即每一个与网络相连接的计算机和服务器都被指派一个独一无二的地址。2、为了保证网络上每台计算机的IP地址的唯一性,用户必须向特定机构申请注册,分配IP地址网络中的地址方案分为两套IP地址系统和域名地址系统。这两套地址系统其实是一一对应的关系。注虚拟网络技术bond技术纯文本格式文件。...........

settng style 892

HTTP的概述

什么是HTTP?超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。当时选择使用HTTP协议,是因为它使开发和部署非常地直截了当。如何访问Web应用的?1、在浏览器地址栏键入URL访问2、浏览器向DNS(域名解析)服务器请求解析该URL中的域名所对应的IP地址;3、解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接;

weixin_64359465的博客 741

HTTP协议——HTTP概述

《HTTP协议基础》这些博文是我记录自己学习过程中的一些笔记,参考书籍为《图解HTTP》一、Web页面生成原理        当我们在浏览器的地址栏中输入网址,然后点击回车,接着,浏览器就会呈现出我们需要的web界面,那么,这个界面是怎么产生的?web的界面是根据我们输入的URL(网址、地址),浏览器从服务器端获取对应的文件资源等信息,然后显示在浏览器上面。像这种通过发送请求获取服务器资源的web...

vikeyyyy的博客 5120

SpringBoot 基础知识,HTTP 概述

SpringBoot 基础知识,HTTP 概述

m0_74012211的博客 991

HTTP协议概述(读后记)

<br />

hpsysljt的专栏 849
上一篇: MySQL-函数处理
下一篇: MySQL-聚集函数(汇总)
PythonKidDz
博客等级 码龄10年 7粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值