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

C05S01-Web基础和HTTP协议

一、Web基础

1. Web相关概念

1.1 URL

URL(Uniform Resource Locator,统一资源定位符),是一种用于在互联网上标识和定位资源的标准化地址,提供了一种访问互联网上特定资源的方法。URL的基本格式如下所示:

协议://主机:端口/路径
  • 协议:指定了获取资源的方式。协议是通信的规则和标准。
  • 主机:指定了资源所在的服务器的域名或IP地址。
  • 端口:指定了服务器上用于网络通信的端口。如果省略,浏览器将使用默认端口,http默认是80端口,https默认是443端口。
  • 路径:指定了资源在服务器上的所在位置。

1.2 网页和网站

网页(Web Page)是构成万维网(World Wide Web)的基本单元,它是通过互联网传输的文档。网页可以包含文本、图片、视频、音频等多媒体内容,以及超链接(Hyperlinks),这些超链接可以链接到其他网页或者网站。

网页通常使用超文本标记语言(HTML)编写,并可能包含CSS(层叠样式表)用于布局和样式设计,以及JavaScript用于增加交互性。可以通过浏览器访问网页,浏览器将HTML文件转为用户可浏览的页面,以访问相关的资源。

网站是由多个网页组成,是多个网页的结合体。首页是用户打开网站默认显示的网页,是在设计网站时设置好的。

1.3 Web

Web(World Wide Web,全球广域网),也称为万维网。是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。

  • Web 1.0

    Web 1.0阶段以静态网页和单向信息传递为特征。在这个阶段,网站主要是由HTML编写的静态页面,用户可以浏览信息,但互动性非常有限。

  • Web 2.0

    Web 2.0阶段更注重用户的交互,用户既是网页的消费者,也是网页内容的制造者。

1.4 静态网页和动态网页

静态网页是指内容固定不变,不随用户行为或数据库内容变化而变化的网页,是纯粹的HTML文件所编写的网页。通常没有数据库的支持,网页内容更新相对麻烦,网页的URL也是固定不变的。

  • 固定的URL。
  • 纯粹的HTML文件。
  • 没有数据库支持。
  • 不能实现用户和网页的交互。
  • 网页访问速度快,网页内容更新麻烦。

动态网页是指内容可以根据用户行为、数据库查询结果或其他变量而变化的网页。

  • 网页的URL是可以变化的。
  • 网页会根据用户的要求和操作进行响应。
  • 网页的内容会自动更新,随着时间和用户的交互而改变。

二、HTTP

1. HTTP概述

HTTP(超文本传输协议),是客户端和用户端之间进行数据传输和通信的一种规则和标准。HTTP协议属于应用层协议,基于传输层的TCP协议实现。客户端和服务端通过TCP协议进行连接的建立,应用层使用HTTP协议进行数据的传输,通过指定端口来进行通信。HTTP协议默认的端口是TCP/80,HTTPS(超文本传输安全协议)协议默认的端口是TCP/443。

2. HTTP连接过程

  1. 客户端将域名解析为IP地址。
  2. 客户端和服务端建立TCP连接(三次握手)。
  3. 客户端发送HTTP请求。
  4. 服务器处理请求,发送HTTP响应。
  5. 客户端和服务端断开TCP连接(四次挥手)。

3. HTTP请求报文

HTTP请求报文是客户端发送给服务器的报文,用于请求服务器上的资源。HTTP请求报文包括请求行、请求头和请求体。

  • 请求行:
    • 请求方法:客户端的请求方法。
    • 请求URL:请求的资源路径。
    • HTTP版本:使用的HTTP协议版本。
  • 请求头:
    • 包含了客户端环境信息、请求体的类型和大小等信息。常见的信息包括Host(请求的服务器域名)、User-Agent(客户端信息)、Accept(客户端能够处理的媒体类型)、Accept-Language(客户端偏好的语言)、Accept-Encoding(客户端能够处理的压缩类型)、Content-Type(请求体的媒体类型)、Content-Length(请求体的长度)等。
  • 请求体:非必须。

4. HTTP响应报文

HTTP响应报文是服务端发送给客户端的报文,用于响应客户端的请求。HTTP响应报文包括响应行、响应头和响应体。

  • 响应行:
    • HTTP版本:使用的HTTP协议版本。
    • 状态码:一个三位数字,表示请求的结果。
    • 状态消息:状态码的简单描述。
  • 响应头:
    • 包含了服务器环境信息、响应体的类型和大小等信息。常见的响应头包括Content-Type(响应体的媒体类型)、Content-Length(响应体的长度)、Server(服务器软件名称)、Set-Cookie(设置Cookie)、Cache-Control(控制缓存行为)等。
  • 响应体:非必须。

5. HTTP请求方式和状态码

HTTP 支持不同的请求方法,每条 HTTP 请求报文都包含一个请求方法, 也就是告诉服务器要执行什么动作。常见的方法包括:GET、POST等。

GET是默认的请求方式,用于请求数据。GET请求是可以被缓存的;请求字段长度有限制,字段会在URL中显示。POST是客户端向服务端提交数据,用于添加数据或修改数据。POST请求是不可以被缓存的;请求字段长度没有限制;字段不会在URL中显示。

HTTP 状态码是一个用于表示服务端响应状态的3位数字代码。

  • 1xx:信息提示。
  • 200~206:表示请求成功。
  • 300~305:表示请求重定向。
  • 400~415:表示客户端错误。
  • 500~505:表示服务端错误。

常见的状态码包括:

  • 200:成功请求。
  • 301:永久重定向。
  • 302:临时重定向。
  • 304:表示使用缓存内容。
  • 403:客户端无权限访问。
  • 404:客户端访问的资源不存在。
  • 500:服务器内部错误。
  • 502:服务器网关错误。
  • 503:当前服务不可用。
  • 504:网关请求超时。

访问网页,出现502的解决方法。

  1. 考虑服务端的网关配置有误,导致请求报文不能够到达服务端。
  2. 查看服务端的防火墙配置,是否存在拒绝请求报文访问的规则。
  3. 查看服务端的配置文件,是否出现配置错误,导致无法正常请求。

相关文章:

C05S01-Web基础和HTTP协议

一、Web基础 1. Web相关概念 1.1 URL URL(Uniform Resource Locator,统一资源定位符),是一种用于在互联网上标识和定位资源的标准化地址,提供了一种访问互联网上特定资源的方法。URL的基本格式如下所示:…...

MIT工具课第六课任务 Git基础练习题

如果您之前从来没有用过 Git,推荐您阅读 Pro Git 的前几章,或者完成像 Learn Git Branching 这样的教程。重点关注 Git 命令和数据模型相关内容; 相关内容整理链接:Linux Git新手入门 git常用命令 Git全面指南:基础概念…...

计算机网络安全

从广义来说,凡是涉及到网络上信息的机密性、报文完整性、端点鉴别等技术和理论都是网络安全的研究领域。 机密性指仅有发送方和接收方能理解传输报文的内容,而其他未授权用户不能解密(理解)该报文报文完整性指报文在传输过程中不…...

Delphi 实现键盘模拟、锁定键盘,锁定鼠标等操作

Delphi 模拟按键的方法 SendMessageA 说明: 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回SendMessage所包含4个参数: 1. hwnd 32位的窗口句柄窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数…...

RTK数据的采集方法

采集RTK(实时动态定位)数据通常涉及使用高精度的GNSS(全球导航卫星系统)接收器,并通过基站和流动站的配合来实现。本文给出RTK数据采集的基本步骤 文章目录 准备设备设置基站设置流动站数据采集数据存储与处理应用数据…...

Next.js 入门学习

一、引言 在现代 Web 开发领域,Next.js 已成为构建高性能、可扩展且用户体验卓越的 React 应用程序的重要框架。它基于 React 并提供了一系列强大的特性和工具,能够帮助开发者更高效地构建服务器端渲染(SSR)、静态站点生成&#…...

2024年认证杯SPSSPRO杯数学建模B题(第一阶段)神经外科手术的定位与导航解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 B题 神经外科手术的定位与导航 原题再现: 人的大脑结构非常复杂,内部交织密布着神经和血管,所以在大脑内做手术具有非常高的精细和复杂程度。例如神经外科的肿瘤切除手术或血肿清除手术,通常需要…...

安卓底层相机流的传输方式

这是安卓 相机流的定义 typedef enum {CAM_STREAMING_MODE_CONTINUOUS, /* continous streaming */CAM_STREAMING_MODE_BURST, /* burst streaming */CAM_STREAMING_MODE_BATCH, /* stream frames in batches */CAM_STREAMING_MODE_MAX} cam_streaming_mode_t; 在ca…...

【单链表】(更新中...)

一、 题单 206.反转链表203.移除链表元素 876.链表的中间结点BM8 链表中倒数最后k个结点21.合并两个有序链表 二、题目简介及思路 206.反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 思路简单,但是除了要两个指针进…...

开源堡垒机JumpServer配置教程:使用步骤与配置

开源堡垒机JumpServer配置教程&#xff1a;使用步骤与配置 上一篇文章星哥讲了如何安装JumpServer堡垒机&#xff0c;本篇文章来讲如何配置和使用JumpServer。 安装成功后&#xff0c;通过浏览器访问登录 JumpServer 地址: http://<JumpServer服务器IP地址>:<服务运…...

上门服务小程序开发,打造便捷生活新体验

随着互联网的快速发展&#xff0c;各种上门服务成为了市场的发展趋势&#xff0c;不管是各种外卖、家政、美甲、维修、按摩等等&#xff0c;都可以提供上门服务&#xff0c;人们足不出户就可以满足各种需求&#xff0c;商家也能够获得新的拓展业务渠道&#xff0c;提高整体收益…...

iOS中的类型推断及其在Swift编程语言中的作用和优势

iOS中的类型推断及其在Swift编程语言中的作用和优势 一、iOS中的类型推断 类型推断&#xff08;Type Inference&#xff09;是编程语言编译器或解释器自动推断变量或表达式的类型的能力。在支持类型推断的语言中&#xff0c;开发者在声明变量时无需显式指定其类型&#xff0c…...

工业检测基础-缺陷形态和相机光源选型

缺陷形态与相机选择依据 微小点状缺陷&#xff08;如微小气泡、杂质颗粒&#xff09; 相机选择依据&#xff1a; 分辨率&#xff1a;需要高分辨率相机&#xff0c;无论是面阵还是线阵相机&#xff0c;以确保能够清晰地分辨这些微小的点。对于面阵相机&#xff0c;像元尺寸要小&…...

Python100道练习题

Python100道练习题 BIlibili 1、两数之和 num1 20 num2 22result num1 num2print(result)2、一百以内的偶数 list1 []for i in range(1,100):if i % 2 0:list1.append(i) print(list1)3、一百以内的奇数 # 方法一 list1 [] for i in range(1,100):if i % 2 ! 0:lis…...

2024年华中杯数学建模A题太阳能路灯光伏板的朝向设计问题解题全过程文档及程序

2024年华中杯数学建模 A题 太阳能路灯光伏板的朝向设计问题 原题再现 太阳能路灯由太阳能电池板组件部分&#xff08;包括支架&#xff09;、LED灯头、控制箱&#xff08;包含控制器、蓄电池&#xff09;、市电辅助器和灯杆几部分构成。太阳能电池板通过支架固定在灯杆上端。…...

【JavaWeb后端学习笔记】Java上传文件到阿里云对象存储服务

阿里云对象存储 1、创建阿里云对象存储节点2、上传文件2.1 修改项目配置文件2.2 定义一个Properties类获取配置信息2.3 准备一个alioss工具类2.4 创建注册类&#xff0c;将AliOssUtil 注册成Bean2.5 使用AliOssUtil 工具类上传文件2.6 注意事项 使用阿里云对象存储服务分为以下…...

网盘管理系统

文末获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 设计题目&#xff1a;网盘管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软…...

learn-(Uni-app)跨平台应用的框架

使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一份代码&#xff0c;可发布到iOS、Android、Web&#xff08;包括微信小程序、百度小程序、支付宝小程序、字节跳动小程序、H5、App等&#xff09;等多个平台。 跨平台&#xff1a;Uni-app 支持编译到iOS、Android、W…...

趋同进化与趋异进化的区别及分析方法-随笔03

趋同进化与趋异进化的区别及分析方法 1. 引言 在生物学中&#xff0c;进化是指生物种群随着时间的推移&#xff0c;通过遗传变异、自然选择、基因漂变等机制的作用&#xff0c;逐渐改变其基因型和表型的过程。进化的方式有很多种&#xff0c;其中趋同进化&#xff08;Converg…...

2024年华中杯数学建模B题使用行车轨迹估计交通信号灯周期问题解题全过程文档及程序

2024年华中杯数学建模 B题 使用行车轨迹估计交通信号灯周期问题 原题再现 某电子地图服务商希望获取城市路网中所有交通信号灯的红绿周期&#xff0c;以便为司机提供更好的导航服务。由于许多信号灯未接入网络&#xff0c;无法直接从交通管理部门获取所有信号灯的数据&#x…...

基于雪崩晶体管设计2ns快速边沿脉冲发生器:原理、实现与调试

1. 项目概述与核心价值在射频、高速数字电路测试&#xff0c;甚至是核物理、激光雷达的前沿实验中&#xff0c;我们常常会遇到一个令人头疼的问题&#xff1a;市面上能买到的标准脉冲信号源&#xff0c;其输出脉冲的上升时间&#xff08;Rise Time&#xff09;往往在几十纳秒甚…...

Java Stream流式编程实战

前言 在现代软件开发中&#xff0c;Java Stream流式编程实战是一个非常重要的技术点。本文将从原理到实践&#xff0c;带你深入理解这一技术&#xff0c;并通过完整的代码示例帮助你快速掌握核心知识点。 核心概念 基本原理 Java Stream流式编程实战的核心在于理解其底层机制。…...

LabVIEW图形化编程实战:从数据流原理到高效测控系统开发

1. 项目概述与核心价值今天咱们来聊聊LabVIEW这门工具。很多刚接触自动测试、数据采集或者仪器控制的朋友&#xff0c;可能都听说过它的大名&#xff0c;但上手时总觉得它和传统的文本编程语言&#xff08;比如C、Python&#xff09;不太一样&#xff0c;有点无从下手。我最早接…...

Perplexity学校信息检索的“黑箱”终于被打开:基于37所样本校实测的响应延迟、召回率与可信度三维评估报告

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity学校信息检索的“黑箱”终于被打开&#xff1a;基于37所样本校实测的响应延迟、召回率与可信度三维评估报告 实测方法论&#xff1a;三维度穿透式评估框架 我们对全国37所高校&#xff08;含985/2…...

为了一个过时的Qt4组件,我折腾了一下午的MinGW 4.8.2和Qt Creator 3.3.0

当Qt4遇上现代开发环境&#xff1a;一次复古技术栈的生存指南 那天下午&#xff0c;当我打开那本泛黄的《Qt Creator快速入门》第3版时&#xff0c;完全没预料到即将陷入一场持续六小时的版本适配噩梦。书中的phonon多媒体模块示例代码在Qt5环境中频频报错&#xff0c;搜索后才…...

OpenClaw小龙虾设置DeepSeek模型|自检清单+常见问题解决方案

OpenClaw 连接 DeepSeek 完整图文教程 前置准备 下载小龙虾一键安装包&#xff08;下载地址&#xff1a;www.totom.top&#xff09;并安装。 已安装并可以正常打开 OpenClaw Windows。 OpenClaw 顶部 Gateway 状态保持在线。 电脑已联网&#xff0c;可正常访问 DeepSeek 开…...

ARM ETM10硬件追踪系统设计与信号完整性优化

1. ARM ETM10硬件追踪系统设计精要在嵌入式系统开发领域&#xff0c;ARM ETM10&#xff08;Embedded Trace Macrocell&#xff09;作为一款高性能硬件追踪模块&#xff0c;为开发者提供了处理器指令和数据流的实时可视性。不同于软件调试工具&#xff0c;ETM10通过在芯片内部直…...

从NOIP到CSP:信息学奥赛初赛这15年真题,我帮你划出了重点考点变迁

信息学奥赛初赛15年考纲演进&#xff1a;从NOIP到CSP的考点变迁与备考策略 翻开2007年NOIP普及组的初赛试卷&#xff0c;再对比2022年CSP-J/S的真题&#xff0c;你会惊讶地发现&#xff1a;同样是"入门级"考试&#xff0c;题目考察的维度和深度已经发生了翻天覆地的变…...

从API密钥管理角度感受Taotoken控制台的安全与便捷

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 从API密钥管理角度感受Taotoken控制台的安全与便捷 作为项目或团队的技术负责人&#xff0c;管理多个大模型服务的API密钥是一项既…...

【亲测免费】 探索U-Net多类别图像分割:基于PyTorch的开源利器

探索U-Net多类别图像分割&#xff1a;基于PyTorch的开源利器 【下载地址】U-Net多类别训练代码基于PyTorch 本仓库提供了一个基于PyTorch实现的U-Net模型代码&#xff0c;适用于多类别图像分割任务。你可以使用该代码训练自己的数据集&#xff0c;实现对图像中不同类别的精确分…...