当前位置: 首页 > 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…...

高效查找秘密武器一:位图

有这样的一个问题&#xff1a; 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数 中。 那么我们一般会想到这样做的 1.遍历&#xff0c;时间复杂度O(n) 2.排序&#xff08;N*logN&#xff09;&#xff0c…...

自回归模型(AR )

最近看到一些模型使用了自回归方法&#xff0c;这里就学习一下整理一下相关内容方便以后查阅。 自回归模型&#xff08;AR &#xff09; 自回归模型&#xff08;AR &#xff09;AR 模型的引入AR 模型的定义参数的估计方法模型阶数选择平稳性与因果性条件自相关与偏自相关函数优…...

Linux内核 -- Linux驱动从设备树dts文件中读取字符串信息的方法

从Linux设备树读取字符串信息 在Linux内核中&#xff0c;从设备树&#xff08;DTS&#xff09;中读取字符串信息&#xff0c;通常使用内核提供的设备树解析API。这些API主要位于<linux/of.h>头文件中。 常用函数解析 1. of_get_property 获取设备树中的属性。原型:con…...

图片懒加载+IntersectionObserver

通过IntersectionObserver实现图片懒加载 在JavaScript中&#xff0c;图片懒加载可以通过监听滚动事件和计算图片距离视口顶部的距离来实现 在HTML中&#xff0c;将src属性设置为一个透明的1x1像素图片作为占位符&#xff0c;并将实际的图片URL设置为data-src属性。 <img c…...

MySQL的获取、安装、配置及使用教程

一、获取MySQL 官网地址:https://www.mysql.com MySQL产品:企业版(Enterprise)和社区版(Community)社区版是通过GPL协议授权的开源软件&#xff0c;可以免费使用。企业版是需要收费的商业软件 MySQL版本历史:5.0、5.5、5.6、5.7和8.0(最新版本)两种打包版本:MSI(安装版)和ZI…...

Odoo在线python代码开发

《Odoo在线python代码开发从入门到精通》 从简入手&#xff0c;由浅入深&#xff0c;Odoo开发不求人 以实例促理解&#xff0c;举一反三 从Python到Odoo&#xff0c;低代码开发的正解之路 代码视频讲解与代码注释配合&#xff0c;帮助用户真正理解每一句代码的作用 《Odoo在…...

在.NET 6中使用Serilog收集日志

此示例的完整详细信息&#xff1a;https://download.csdn.net/download/hefeng_aspnet/89998498 Serilog 是一个日志库&#xff0c;它提供对文件、控制台和其他几个地方的记录。它易于配置&#xff0c;并且具有干净且易于使用的界面。 Serilog具有无与伦比的输出目的地选择&…...

【D3.js in Action 3 精译_043】5.1 饼图和环形图的创建(中):D3 饼图布局生成器的配置方法

当前内容所在位置&#xff1a; 第五章 饼图布局与堆叠布局 ✔️ 5.1 饼图和环形图的创建 ✔️ 5.1.1 准备阶段&#xff08;上篇&#xff09;5.1.2 饼图布局生成器&#xff08;中篇&#xff09; ✔️5.1.3 圆弧的绘制5.1.4 数据标签的添加 文章目录 5.1.2 饼图布局生成器 The …...

离线安装ollama到服务器

搜了很多教程不满意,弄了半天才弄好&#xff0c;这里记录下&#xff0c;方便以后的人用&#xff0c;那个在线下载太慢&#xff0c;怕不是得下载到明年。 一.从官网下在liunx版的tgz安装包 Releases ollama/ollama (github.com) 查看自己的服务器信息&#xff08;参考 https:/…...

自动化点亮LED灯之程序编写

程序编写&#xff1a; #!/bin/shecho none > /sys/class/leds/led1/triggerecho none > /sys/class/leds/led2/triggerecho none > /sys/class/leds/led3/triggerecho 0 > /sys/class/leds/led1/brightnessecho 0 > /sys/class/leds/led2/brightnessecho 0 >…...