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. 查看服务端的配置文件,是否出现配置错误,导致无法正常请求。

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

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

相关文章

Spring+Mybatis 整合所需准备

文章目录 SpringMybatis SpringMybatis 准备pom.xml 项目所需jar文件 <spring.version>4.0.2.RELEASE</spring.version> <!-- spring框架包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</a…

Spring中Bean的作用域深入剖析与技术实践

前言 Spring框架作为Java企业级应用开发中的中流砥柱&#xff0c;提供了强大的依赖注入&#xff08;DI&#xff09;和面向切面编程&#xff08;AOP&#xff09;等功能。在Spring框架中&#xff0c;Bean的作用域&#xff08;Scope&#xff09;是一个非常重要的概念&#xff0c;…

从仪表盘探索 MongoDB 关键指标

这是 MongoDB 监控系列文章的第七篇&#xff0c;前面几篇文章的链接如下&#xff1a; MongoDB 监控&#xff08;一&#xff09;MongoDB 监控&#xff08;二&#xff09;MongoDB 监控&#xff08;三&#xff09;MongoDB 监控&#xff08;四&#xff09;MongoDB 监控&#xff08…

mac安装php和xdebug调试

要在Mac上安装PHP 7.4&#xff0c;你可以通过几种方式来完成&#xff0c;但鉴于PHP7.4官方已不再维护&#xff0c;并且Homebrew默认仓库中不再提供此版本&#xff0c;我们需要从第三方仓库或直接从源代码进行安装。本文以brew方式安装&#xff0c;如果安装的是8.0以上&#xff…

UIlicious - 自动化端到端测试

在现代软件开发中&#xff0c;测试自动化已然成为产品交付质量的基石。而端到端测试&#xff08;E2E&#xff09;&#xff0c;作为验证整个应用流畅运行的关键&#xff0c;常常是测试工作中最具挑战性的一环。这时&#xff0c;一款简单高效的自动化测试工具——UIlicious&#…

新一代零样本无训练目标检测

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年12月2日21点02分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅h…

Python_Flask01

所有人都不许学Java了&#xff0c;都来学Python&#xff01; 如果不来学的话请网爆我的老师---蔡老师 Flask的前世姻缘 我不知道&#xff0c;没啥用&#xff0c;要学好这个框架&#xff0c;其实多读书&#xff0c;多看报就行了&#xff0c;真心想了解的话&#xff01; Welcom…

微信小程序版小米商城的搭建流程详解!

很多初学微信小程序语法的同学&#xff0c;可能不知道如何布局和搭建一个项目&#xff0c;下面我将讲解初学者如何搭建项目和注意事项。 目录 一、 app.json的配置 二、引入vant 三、主页banner携带参数跳转 四、点击商品项跳转详情页 一、 app.json的配置 {"pages&q…

Neo4j启动时指定JDK版本

项目使用jdk1.8&#xff0c;同时需要安装neo4j5.15版本&#xff0c;使用jdk17. 1.mac或者liunx&#xff0c;找到neo4j目录bin的下neo4j文件 设置JAVA_HOME: 2.windows,找到bin下面的neo4j.bat文件 set "JAVA_HOME{JDK文件目录}" 重启后生效。

AI大模型驱动数据分析:利用自然语言实现数据查询与可视化(1)

在当今AI驱动的时代&#xff0c;数据分析已成为各行各业不可或缺的能力。然而&#xff0c;传统的数据分析流程通常需要掌握SQL、数据处理和可视化等多项专业技能&#xff0c;这对非技术背景的业务人员来说是一个不小的挑战。 想象一下&#xff0c;当数据中心的负责人打开手机时…

汽车总线协议分析-FlexRay总线

随着汽车智能化发展&#xff0c;汽车增加安全性和舒适体验的功能增多&#xff0c;用于实现这些功能的传感器、ECU的数量也在持续上升&#xff0c;严重阻碍了线控技术的发展。常用的CAN、LIN等总线由于缺少同步性、确定性和容错性不能满足汽车线控系统(X-by-Wire)的要求。因此&a…

flinkSql中累计窗口CUMULATE

eventTime package com.bigdata.day08;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.bridge.java.StreamTableEnvironment;public class _05_flinkSql_Cumulate_eventTime {/*** 累积窗口 eventTime* …

第二篇:k8s工作流程

我们来看通过deployment部署pod的常规流程&#xff1a; kubectl向apiserver发送部署请求&#xff08;例如使用 kubectl create -f deployment.yml&#xff09;apiserver将 Deployment 持久化到etcd&#xff1b;etcd与apiserver进行一次http通信。controller manager通过watch a…

SPC三种判定准则的算法

1.连续6个点递增或递减 //传入数据列表 //返回连续X个及以上递增或递减的数组下标int n = array.Length; int X = X_in; List<int> regions_start = new List<int>(); List<int> regions_end = new List<int>();if(Open){for (int i = 0; i < n - (…

工业—使用Flink处理Kafka中的数据_ProduceRecord1

1 、 使用 Flink 消费 Kafka 中 ProduceRecord 主题的数据,统计在已经检验的产品中,各设备每 5 分钟 生产产品总数,将结果存入Redis 中, key 值为

Advanced Macro Techniques in C/C++: `#`, `##`, and Variadic Macros

Advanced Macro Techniques in C/C: #, ##, and Variadic Macros 文章目录 Advanced Macro Techniques in C/C: #, ##, and Variadic MacrosIllustrative Examples of Macros Using # and ##Stringification ExampleToken Concatenation ExampleNested Macros Example Key Conc…

python爬虫01

前言 之前的学习不是很努力就间断更新了&#xff0c;现在所有的内容是在具有python基础和web基础上继续更新的。接下来是爬虫和Flask框架共同更新&#xff0c;一起加油吧。 接v&#xff1a;13053025350&#xff08;毕设&#xff0c;小程序&#xff09; 看不懂python基础的可以…

使用CIFS挂载nas到centos

要将 NFS 挂载改为 CIFS 挂载方式&#xff0c;你需要确保以下条件满足&#xff1a; NAS 支持 SMB/CIFS 协议&#xff1a; 大多数 NAS 设备同时支持 NFS 和 SMB/CIFS 协议。在 NAS 配置中&#xff0c;确保 CIFS 服务已启用&#xff0c;并且你有访问共享路径的用户名和密码。 安…

开发基础(3):开发应用沉浸式效果 组件安全区方案

什么是沉浸式效果 典型应用全屏窗口UI元素包括状态栏、应用界面和底部导航条,其中状态栏和导航条,通常在沉浸式布局下称为避让区;避让区之外的区域称为安全区。 开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感…

第四篇:k8s 理解Service工作原理

什么是service&#xff1f; Service是将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。 简单来说K8s提供了service对象来访问pod。我们在《k8s网络模型与集群通信》中也说过k8s集群中的每一个Pod&#xff08;最小调度单位&#xff09;都有自己的IP地址&#xff0c;都…