Web Server项目实战3-Web服务器简介及HTTP协议

Web Server(网页服务器)

一个 Web Server 就是一个服务器软件(程序),或者是运行这个服务器软件的硬件(计算机)。其主要功能是通过 HTTP 协议与客户端(通常是浏览器(Browser))进行通信,来接收、存储,处理来自客户端的 HTTP 请求,并对其请求做出 HTTP 响应,返回给客户端其请求的内容(文件、网页)或返回一个error信息。

通常用户使用 Web 浏览器与相应服务器进行通信。在浏览器中键入“域名”或“IP地址:端口号”,浏览器则先将你的域名解析成相应的 IP 地址或者直接根据你的 IP 地址向对应的 Web 服务器发送一个 HTTP 请求。

这一过程首先要通过 TCP 协议的三次握手建立与目标 Web 服务器的连接,然后 HTTP 协议生成针对 Web 服务器的 HTTP 请求报文,通过 TCP、IP等协议发送到目标 Web 服务器上。

HTTP协议(应用层的协议)

超文本传输协议(Hypertext Transfer Protocol, HTTP)是一个简单的 请求-响应 协议,是基于 TCP/IP协议之上的应用层协议。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以 ASCII 形式给出,而消息内容则具有一个类似 MIME 的格式。HTTP 是万维网的数据通信的基础。

HTTP 是一个客户端终端和服务器端请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个 HTTP 请求到服务器上指定端口(默认端口为80).我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如 HTML 文件和图像,我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道。

HTTP 假定其下层协议提供可靠的传输,因此任何能够提供这种保证的协议都可以被其使用,因此在 TCP/IP 协议族中使用 TCP 作为其传输层。

HTTP请求方法

HTTP/1.1 协议中共定义了8种方法(也叫“动作”)来以不同方式操作指定的资源,以下只介绍GET/POST:

1.GET:向指定的资源发出“显示”请求,使用GET方法应该只用在读取数据,而不应当被用于可能会产生副作用的操作中,例如在 Web Application 中,其中一个原因是 GET 可能会被网络蜘蛛等随意访问。

2.POST:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求报文中,这个请求可能会创建新的资源或者修改现有资源,或两者兼有。

GET和POST的区别:

POST 是被设计用来向上放东西的,而 GET 是被设计用来从服务器取东西的,GET 也能够向服务器传送较少的数据,而 GET 之所以也能传送数据,只是被用来设计告诉服务器,你到底需要什么样的数据。POST 参数放在 HTTP 请求体,而 GET 参数放在 HTTP 请求头。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/13745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【精品】使用 v-md-editor 上传图片

简介 v-md-editor 是基于 Vue 开发的 markdown 编辑器组件,即支持vue2也支持vue3。 gitee:https://gitee.com/ckang1229/vue-markdown-editor文档:https://code-farmer-i.github.io/vue-markdown-editor/zh/ 服务器端代码 RestController…

[Cocos Creator 3.5赛车游戏]第5节 为汽车节点挂载自定义脚本

在前面的章节中您已经学会了如何创建一个汽车节点,这一章我们将会学习如何通过挂载自定义节点的方式让小车变得可控制,所以通过这一章的学习后,您将实现一个效果:开始运行后,小车每隔一帧就延y轴向上移动一段距离。在这…

cx_Oracle Python 库连接 Oracle 数据库时遇到报错

这个错误 DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found" 是在尝试使用 cx_Oracle Python 库连接 Oracle 数据库时遇到的。这个错误表明 cx_Oracle 无法找到 Oracle 客户端库(通常称为 Instant Cli…

顶顶通呼叫中心中间件-自动外呼输入分机号(比如隐私号)(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-自动外呼输入分机号(比如隐私号)(mod_cti基于FreeSWITCH) 比如有些人的号码是这样的就需要用上自动外呼输入分机号了 号码1:182XXXX8111-1234 号码2:182XXXX8222 如果号码是这样的就根据以下步骤配置 注意使用这个需要:…

Redis学习篇2:Redis在IEDA中的应用

本文继上文开始讲述了Redis在IDEA中如何应用以及集成进入spring开发环境,以及如何使用Redis客户端。上一个文章:Redis学习篇1:初识Redishttps://blog.csdn.net/jialuosi/article/details/139057088 一、Redis在java中的客户端 二、SpringDat…

MySQL存储过程_触发器_游标——Baidu Comate

# 问题1: 帮我创建2个表student与score表,要求student表有id,createDate,userName,phone,age,sex,introduce, 要求score表有id,scoreName,result,studentId(student表的id外键)。 要求student表中插入5条学生信息,都要是中文的。 要求score表…

onload和onunload有什么区别(代码举例说明)

onload 和 onunload 是两种常用于网页中的事件处理器(event handlers),但它们处理的是完全不同的页面生命周期事件。 onload onload 事件会在页面或指定的元素(如图片、框架等)完成加载后触发。对于页面整体来说&…

树莓派 Raspberry Pi M.2 HAT+ 现已发售!原理图流出!

​Raspberry Pi M.2 HAT 使您能够将 M.2 M-key 外设(如 NVMe 驱动器和人工智能加速器)连接到 Raspberry Pi 5。它能够提供与这些外设之间的快数据传输(高达 500 MB/s),现在就可以从树莓派的授权经销商网络购买&#xf…

c语言:strcmp

strcmp函数是用于比较两个字符串的库函数,其功能是根据ASCII值逐一对两个字符串进行比较。 语法:strcmp(str1, str2) 返回值: 如果str1等于str2,则返回0。 如果str1小于str2,则返回负数(具体值取决于C…

注意力机制篇 | MSFE:即插即用的多尺度滑窗注意力(附源码实现)

前言:Hello大家好,我是小哥谈。多尺度滑窗注意力(Multi-Scale Sliding Window Attention,MSFE)是一种用于处理图像的深度学习模型。它通过引入多尺度特征提取和滑窗注意力机制来提高图像识别的准确性。在MSFE中,模型采用多尺度卷积神经网络来提取图像的特征,然后使用滑窗…

DELPHI通过WebService进行数据交互

WebService是一种可以跨语言和平台的数据交互模式,使用非常广泛,与JSon数据格式结合,更是当前非常流行的一种模式,本章针对DELPHI通过WebService进行数据的交互做一个相对简单例子应用。 本文使用的DELPHI 版本为:DEL…

pdf文件怎么编辑?分享3个专业的pdf软件!

在数字化时代,PDF文件已成为我们工作、学习中的得力助手。然而,面对需要修改的PDF文件,许多人却感到无从下手。今天,就让我们一起探索如何轻松编辑PDF文件,并介绍几款实用的编辑软件,让你轻松应对各种PDF编…

创建型模式 (Python版)

单例模式 懒汉式 class SingleTon:# 类属性_obj None # 用来存储对象# 创造对象def __new__(cls, *args, **kwargs):# 如果对象不存在,就创造一个对象if cls._obj is None:cls._obj super().__new__(cls, *args, *kwargs)# 返回对象return cls._objif __name__…

OpenAI宫斗剧番外篇: “Ilya与Altman联手对抗微软大帝,扫除黑恶势力”,“余华”和“莫言”犀利点评

事情是这样的。 小编我是一个重度的智谱清言用户,最近智谱清言悄悄上线了一个“划词引用”功能后,我仿佛打开了新世界的大门。我甚至用这个小功能,玩出来了即将为你上映的《OpenAI宫斗剧番外篇》。 3.5研究测试:hujiaoai.cn 4研…

@Controller和@RestController区别

一、Controller 注解: Controller 注解用于定义一个控制器类,通常配合 Spring MVC 框架使用。 控制器类负责处理用户的 HTTP 请求,并将处理结果返回给客户端。 控制器类中的方法通常通过 RequestMapping 或其衍生注解来映射特定的 URL 请求…

Python中的数据类型转换

文章目录 一、转成整数形式二、转成浮点数形式三、转成字符串形式四、转成列表形式五、转成元祖形式六、json和字典转换1.json转字典2.字典转json 一、转成整数形式 使用int()方法,示例代码如下: a 5201314 result int(a) print(result) print(type(…

蓝牙Classic加密算法设计和实现,SAFER+,E0,E1,E2,E3(python)

概述 之前用python给大家实现了所有LE相关加密工具算法。bobwenstudy/BluetoothCryptographicToolbox: LE SMP加密算法设计和实现(python) (github.com),最近重温了下Classic加密,顺便将Classic所有加密算法给实现了一遍。 在蓝牙Classic Spec中&#…

5.14.3 UNETR:用于 3D 医学图像分割的 Transformers

具有收缩和扩展路径的全卷积神经网络 (FCNN) 在大多数医学图像分割应用中表现出了突出的作用。在 FCNN 中,编码器通过学习全局和局部特征以及上下文表示来发挥不可或缺的作用,这些特征和上下文表示可用于解码器的语义输出预测。 在FCNN中,收缩…

对列表进行统计和计算

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Python的列表提供了内置的一些函数来实现统计、计算的功能。下面介绍几种常用的功能。 (1)获取指定元素出现的次数 使用列表…

数字水印 | 图像标准化论文:Digital Watermarking Robust to Geometric Distortions(二)

目录 C 变换参数的确定D 水印的影响E 可替代的标准化过程 🤖原文: Digital Watermarking Robust to Geometric Distortions 🤖前言: 这是一篇 2005 年的 SCI 一区 CCF-A,但是网上关于它的讲解貌似挺少的。文中提出…