【linux】web基础与HTTP协议

news2024/11/22 18:58:55

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

web基础与HTTP协议

  • 一、DNS/HTML
    • 1.域名的概述
    • 2.域名注册
    • 3.网页的概念
    • 4.HTML概述
    • 5.网页基本标签
  • 二、web基础
    • 1.web概述
    • 2.静态网页
    • 3.静态网页特点
    • 4.动态网页
    • 5.动态网页的特点
  • 三、HTTP协议
    • 1.HTTP协议概述
    • 2.HTTP方法
    • 3.GET 和 POST 比较
    • 4.HTTP 状态码
      • 1.HTTP 常见状态码
    • 5.HTTP 请求流程分析
    • 6.HTTP访问的过程


一、DNS/HTML

1.域名的概述

域名的概念

  • IP地址不易记忆

早期使用Hosts文件解析域名

  • 主机名称重复
  • 主机维护困难

DNS(Domain Name System 域名系统)

  • 分布式
  • 层次性

域名空间结构

  • 根域
  • 顶级域
  • 二级域名
  • FQDN=主机名DNS后缀

2.域名注册

  • 域名注册是Internet中用于解决地址对应问题的一种方法
  • 遵循先申请先注册原则
  • 域名注册步骤

在这里插入图片描述

3.网页的概念

网页

  • 纯文本格式文件
  • 编写语言为HTML
  • 在用户的浏览器中被“翻译”成网页形式显示出来

网站

  • 由一个一个页面构成的,是多个网页的结合体

主页

  • 打开网站后出现的第一个网页称为网站主页(或首页)

域名

  • 浏览网页时输入的网址

HTTP

  • 用来传输网页的通信协议

URL

  • 是一种万维网寻址系统

HTML

  • 用来编写网页的超文本标记语言

超链接

  • 超链接是将网站中不同网页链接起来的功能

发布

  • 将制作好的网页上传到服务器供用户访问的过程

4.HTML概述

HTML超文本标记语言

  • Hyper Text Markup Language
  • 网页的“源码“

HTML文档的结构

  • HTML网页
  • 头部部分
  • 标题部分
  • 主体部分
  • 网页内容,包括文本、图像等

在这里插入图片描述

5.网页基本标签

标签描述
title定义了文档的标题
base定义了页面链接标签的默认链接地址
link定义了一个文档和外部资源之间的关系
meta定义了HTML文档中的元数据
script定义了客户端的脚本文件
style定义了 HTML 文档的样式文件

二、web基础

1.web概述

  • Web(World Wide Web)即全球广域网,也称为万维网
  • 一种分布式图形信息系统
  • 建立在Internet上的一种网络服务

Web1.0 vs Web2.0

Web1.0

  • 以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容
  • 这个过程是网站到用户的单向行为

Web2.0

  • 更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是o网站内容的制造者
  • 加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与
  • Web2.0特征 用户分享、以兴趣为聚合点的社群、开放的平台,活跃的用户

2.静态网页

  • 静态网页是标准的HTML文件
  • 扩展名是htm、.html (文本、图像、声音、Flash动画、客户端脚本和ActiveX控件及Java小程序等)
  • 是网站建设的基础,早期网站一般都由静态网页制作
  • 没有后台数据库、不含程序和不可交互的网页
  • 相对更新起来比较麻烦,适用于一般更新较少的展示型网站

3.静态网页特点

  • 每个静态网页都有一个固定的URL,且URL以htm.html、.shtml等常见形式为后缀,而不含有“?”
  • 网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的
  • 静态网页的内容相对稳定,容易被搜索引擎检索
  • 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难
  • 静态网页的交互性较差,在功能方面有较大的限制
  • 页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面

4.动态网页

  • 网页URL不固定,能通过后台与用户交互
  • 在动态网页网址中有一个标志性的符号一“?”
  • 常用的语言有PHP、JSP、Python、Ruby等

5.动态网页的特点

交互性

  • 网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋

自动更新

  • 无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量

因时因人而变

  • 当不同的时间,不同的人访问同一网址时会产生不同的页面

三、HTTP协议

1.HTTP协议概述

HTTP协议是互联网上应用最为广泛的一种网络协议设计这个协议的目的是为了发布和接收Web服务器上的HTML页面

HTTP协议的版本

  • HTTP 0.9
  • HTTP 1.0
  • HTTP 1.1
  • HTTP 1.2

2.HTTP方法

HTTP支持几种不同的请求命令,这些命令被称为HI
方法(HTTP method)

每条HTTP请求报文都包含一个方法,告诉服务器要执行什么动作

  • 获取一个Web 页面
  • 运行一个网关程序
  • 删除一个文件等

HTTP协议有多种获得Web资源的方法

常用的方法:GET和POST

HTTP方法描述
GET请求获取Request-URI所标识的资源
PUT请求服务器存储一个资源,并用Request-URI作为其标识
DELETE请求服务器删除Request-URI所标识的资源
POST在Request-URI所标识的资源后附加新的数据
HEAD请求获取由Request-URI所标识的资源的响应消息报头

3.GET 和 POST 比较

GETPOST
GET请求能被缓存POST请求不能被缓存
GET请求会保存在浏览器的浏览纪录里POST请求不会保存在浏览器的浏览纪录里
GET请求有长度的限制POST请求没有长度限制
查询的字符串会显示在URL后缀中,不安全,比如 http://www.test.com/a.php?Id=123查询的字符串不会显示在URL中,比较安全

4.HTTP 状态码

HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码,当浏览器请求某一 URL 时, 服务器根据处理情况返回相应的处理状态。
通常正常的状态码为2xx,3xx(如200),如果出现异常会返回4xx,5xx(如404)。

状态码首位范围含义
1xx100-101信息提示
2xx200-206成功
3xx300-305重定向
4xx400-415客户端错误
5xx500-505服务器错误

1.HTTP 常见状态码

状态码功能说明
200一切正常
301永久重定向
302临时重定向
401用户名或密码错误
403禁止访问(客户端IP地址被拒绝)
404请求的文件不存在
414请求URI头部过长
500服务器内部错误
502无效网关

注!:产生502(无效网关)的原因
1、数据包没有送到网卡,网络问题;
2、数据包送进去了(交换机能抓到包),但是网卡没收到,网卡问题或防火墙问题;
3、网卡接收到了,处理不了,服务问题。(比如服务器当前连接太多,响应太慢;页面素材太多,带宽不够。)

5.HTTP 请求流程分析

用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。

请求报文四部分:
请求行:请求行由请求方法、URL 以及协议版本三部分组成。
请求头:请求头为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。
空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要,必不可少。
请求体:请求体是请求提交的参数,GET 方法已经在 URL 中指明了参数,所以提交时没有数据。POST 方法提交的参数在请求体中。

常用的请求头:

请求头描述
Host接受请求的服务器地址,可以是 IP:端口号,也可以是域名
User-Agent发送请求的应用程序名称
Connection指定与连接相关的属性,如 Connection:Keep-Alive
Accept-Charset通知服务端可以发送的编码格式
Accept-Encoding通知服务端可以发送的数据压缩格式
Accept-Language通知服务端可以发送的语言

响应报文四部分
状态行:状态行由协议版本,状态码,状态码描述三部分组成。
响应头:响应头与请求头部类似,为响应报文添加了一些附加信息。
空行:响应头部的最后会有一个空行,表示响应头部结束。
响应体:服务器返回的相应 HTML 数据,浏览器对其解析后显示页面。

常用的响应头:

响应头描述
Server服务器应用程序软件的名称和版本
Content-Type响应正文的类型(是图片还是二进制字符串)
Content-Length响应正文长度
Content-Charset响应正文使用的编码
Content-Encoding响应正文使用的数据压缩格式
Content-Language响应正文使用的语言

6.HTTP访问的过程

1.建立连接:客户端发送一个请求到服务端,并建立一个 TCP 连接 (三次握手)。
2.发送请求:客户端发送一个 HTTP 请求到服务端,该请求包含请求方法,URL 和协议版本等信息,以及可能还包括请求头和请求体信息。
3.处理请求:服务端接收到请求并进行处理,这个过程包括解析请求头和请求体信息,验证请求并进行一些业务处理等。
4.发送响应:服务端发送一个 HTTP 响应到客户端,该响应包含响应状态码,响应头和响应体等信息。
5.接收响应:客户端接收响应,并进行处理,包括解析响应头和响应体信息,验证响应并进行一些业务处理等。
6.关闭连接:客户端和服务端在完成请求和响应后,关闭 TCP 连接 (四次挥手)。

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

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

相关文章

软件开发SOLID设计原则

前言:SOLID设计原则,不管是软件系统还是代码的实现,遵循SOLID设计原则,都能够有效的提高系统的灵活和可靠性,应对代码实现的需求变化也能更好的扩展和维护。因此提出了五大原则——SOLID。 我是通过老师讲解以及老师…

【深入浅出Spring Security(三)】默认登录认证的实现原理

Spring Security 默认登录认证的实现原理 一、默认配置登录认证过程二、流程分析登录页面的由来表单登录认证过程(源码分析) 三、UserDetailsServiceSpring Security 中 UserDetailsService 的实现默认的 UserDetailsService 配置(源码分析&a…

【送书福利-第七期】《分布式中间件核心原理与RocketMQ最佳实践》

大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我! 本文目录 一、前言二、内容介绍三、作者介…

孪生诱捕网络在欺骗防御领域的应用

随着以数字化、网络化和智能化为特征的信息化浪潮的蓬勃兴起,信息已经成为重要的战略资源与重要生产要素,在国家的发展和人们的生产生活中起到至关重要的作用。信息化在给人们带来便利的同时,网络信息安全问题也日益凸显。经过多年的网络安全…

【Linux】Linux 文件系统与设备文件

Ref: 《Linux设备驱动开发详解:基于最新的Linux4.0内核》中的第5章《Linux 文件系统与设备文件》 基于Linux 5.10 本文结合源码和实例分析了Linux 文件系统与设备文件,主要介绍文件系统的构成和发展,以及三种虚拟文件系统debugfs procfs sysf…

《微服务实战》 第二十七章 CAS

前言 本章节介绍CAS 1、CAS的概念 CAS的全称为:CompareAndSwap,直译为对比和交换。 CAS实际是普遍处理器都支持的一条指令,这条指令通过判断当前内存值V、旧的预期值A、即将更新的值B是否相等来对比并设置新值,从而实现变量的原子性。 Syn…

二进制安装Kubernetes(K8s)集群---从零安装教程(带证书)

一、实验环境 1、安装说明 selinux iptables off 官方网站:https://kubernetes.io/zh-cn/docs/home 主机名IP系统版本安装服务master0110.10.10.21rhel7.5nginx、etcd、api-server、scheduler、controller-manager、kubelet、proxymaster0210.10.10.22rhel7.5nginx、…

【细读Spring Boot源码】Spring如何获取一个Bean?BeanFactory的getBean方法

前言 在读refresh(context);时,finishBeanFactoryInitialization(beanFactory);中beanFactory.preInstantiateSingletons();用于实例化剩余所有的non-lazy-init的单例。这里包含了前置处理器和后置处理器 这里面就用到了本文主题getBean(beanName); 下面具体看看这…

4.数据结构期末复习之树

1.树的概念(一对多)(要求会写遍历序列) 1)n>个节点,n0时为空树2)仅有一个根节点3)左右节点互不相交,子节点一对多2.树的特点 1.子树之间没有关系 2.节点不属于多个子树(一个节点只能在一颗子树里面)3.没有回路(就是成环)4.有层次性3.术语 1.节点的度:拥有子树的个数…

ArcGIS教程——ArcGIS快速入门

实例数据:https://pan.baidu.com/s/184wwCmWrJdb-qjxsT614EQ 密码:dowv ArcGIS for Desktop是一套完整的专业GIS应用程序,包含有ArcMap、ArcCatalog、ArcToolbox、ArcScense、ArcGlobe和Model Builder等。其中ArcMap、ArcCatalog、ArcToolbo…

Unreal Niagara粒子入门3 - 根据模型顶点发射粒子

在一些游戏中经常会出现根据模型顶点位置发射粒子的情况,这次就来实现一下该效果: 1.基础创建操作 首先从空粒子发射器开始创建,右键NiagaraSystem->Create empty system,打开粒子系统后再右键Add empty emitter&#xff1a…

【智能软件安全】上海道宁为您带来智能软件安全平台——​Veracode,帮助您全面地保护您构建和管理地应用程序

Veracode可以全面地 保护您构建和管理地应用程序 在现代软件 开发生命周期的 每个阶段不断发现并修复缺陷 Veracode通过 建立一种在安全和开发团队之间 架起桥梁并授权 开发人员成为 安全倡导者的积极文化 从一开始就防止常见的安全漏洞 开发商介绍 Veracode成立于20…

腾讯云8核16G服务器18M带宽CPU性能可支撑多少人同时在线?

腾讯云8核16G轻量服务器CPU性能如何?18M带宽支持多少人在线?轻量应用服务器具有100%CPU性能,18M带宽下载速度2304KB/秒,折合2.25M/s,系统盘为270GB SSD盘,月流量3500GB,折合每天116.6GB流量&…

【CocosCreator入门】CocosCreator组件 | TiledMap(地图)组件

Cocos Creator是一款流行的游戏开发引擎,具有丰富的组件和工具,其中TiledMap组件可以帮助开发者快速创建、加载和渲染地图。 目录 一、组件介绍 二、组件属性 三、脚本控制 3.1加载地图 3.2渲染地图 四、详细说明 五、关闭裁剪 六、节点遮挡 一、…

Linux中与进程间通信相关的内核数据结构

【摘要】本文详细讲述了Linux内核中与进程间通信概念相关的内核数据结构及其内在联系。 九、进程间通信(IPC)相关数据结构 9.1 ipc_namespace 从内核版本2.6.19开始,IPC机制已经能够意识到命名空间的存在,但管理IPC命名空间比较简单,因为它…

VR教育:让教育“可视化”,开启元宇宙教学之路

放眼世界,有不少高等教育学校都已经开始了元宇宙教学之路,为了从根本上解决目前课堂教学中存在的问题,进一步提高课堂教学质量,VR教育就可以很好地完善这些方面。 传统教育并不能让学生很好地沉浸在真实知识环境中,在一…

连锁门店运营管理系统有哪些功能?该如何选购?

连锁门店运营管理过程中,面临诸多难题,比如不同门店分布在不同地区,管理分散;各门店的人员管理、绩效考核、销售数据等工作进行困难;很难保证产品和服务的标准化管控。 连锁店只有不断适应市场变化,趁早选择…

不用运算符的加法运算

一.不用运算符的加法 1.题目描述 设计一个函数把两个数字相加。不得使用 或者其他算术运算符。 力扣:力扣 2.问题分析 1.知识预备 注意:下面所有的结论的进位是考虑二进制的进位,因为我们使用的位运算符,是针对二进制进行的. 结论一:在不考虑进位的情况下,其无…

【group by】mysql分组查询的案例和原理

【group by】mysql分组查询的案例和原理 【一】group by的使用场景【二】group by的基本语法【1】基本语法【2】常用的聚合函数(1)max函数:取出分组中的最大值(2)avg函数:取出分组中的平均值(3&…

斩获大奖!「智办事绩效」荣获钉钉年度奖项-「含钉量新锐奖」

近日,钉钉发布「含钉量年度奖」榜单,「智办事绩效」凭借与钉钉的深度融合斩获钉钉年度奖项-「含钉量新锐奖」。 ​作为钉钉优质合作伙伴,智办事绩效致力于用数字化、智能化的产品与专业的服务,解决传统绩效管理、人才培养痛点&…