当前位置: 首页 > news >正文

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 请求头。

相关文章:

  • GPT‑4o普通账户也可以免费用
  • java中的Map集合
  • 单向无头链表实现
  • 基于transformers框架实践Bert系列4-文本相似度
  • 反射获取或修改对象属性的值
  • SSH反向代理是什麼?有什麼用?
  • 【kubernetes】多 master 高可用集群架构部署
  • 推荐模型IMSR 复现 (有bug 吧基本不下降)
  • IT行业现状与未来趋势
  • 类与对象:抽象类、Object类和内部类
  • 数据库多表查询概述——三种实现方式
  • 【学习笔记】关于建模时需要调整的变量
  • 使用Python生成一束玫瑰花
  • Python采集安居客租房信息
  • CAD2023 2024 2025以上版本出现无法运行 AutoCAD,原因可能如下1) 此版本的 AutoCAD 安装不正确
  • JS 中的深拷贝与浅拷贝
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • canvas绘制圆角头像
  • gops —— Go 程序诊断分析工具
  • input的行数自动增减
  • javascript从右向左截取指定位数字符的3种方法
  • React Native移动开发实战-3-实现页面间的数据传递
  • spring cloud gateway 源码解析(4)跨域问题处理
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 从如何停掉 Promise 链说起
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #define,static,const,三种常量的区别
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (CPU/GPU)粒子继承贴图颜色发射
  • (Oracle)SQL优化技巧(一):分页查询
  • (pojstep1.3.1)1017(构造法模拟)
  • (ZT)出版业改革:该死的死,该生的生
  • (八)Flask之app.route装饰器函数的参数
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)iOS字体
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转载)hibernate缓存
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • . NET自动找可写目录
  • .libPaths()设置包加载目录
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET Core引入性能分析引导优化
  • .NET 药厂业务系统 CPU爆高分析
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NET6 命令行启动及发布单个Exe文件
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试