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

web基础+HTTP+HTML+apache

目录

一.web基础

1.1web是什么

1.2HTTP

1.2.1HTTP的定义

1.2.2 HTTP请求过程

1.2.3 HTTP报文 

1 请求报文

 2 响应报文

1.2.4 HTTP协议状态码

1.2.5 HTTP方法

 1.2.6 HTTP协议版本 

二.HTML CSS和JavaScript

2.1HTML

2.1.1HTML的概述

2.1.2 HTML中的部分基本标签(了解)

2.1.3 HTML的文件结构(了解) 

2.2 CSS

2.3 JavaScript

2.4 总结三者的关系

三.URI 和 URL 

3.1定义

3.2区别 

3.3 URL的组成 

 三.Apache的工作模式

3.1apache是什么

 3.2apache的三种工作模式 

1. Prefork

2. Worker 

3. Event 


一.web基础

1.1web是什么

Web,全称为World Wide Web(万维网),是一种基于互联网的信息系统,允许用户通过浏览器访问和共享超文本(如网页、图片、视频等)。

1.2HTTP

1.2.1HTTP的定义

HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于在Web上传输数据的应用层协议。它是Web的基础协议之一,定义了客户端(如浏览器)和服务器之间如何通信以请求和传输资源(如网页、图片、视频等)。

1.2.2 HTTP请求过程

  1. 建立连接

  2. 接收请求

  3. 处理请求

  4. 访问资源

  5. 构建响应报文

  6. 发送响应报文

  7. 记录日志

1.2.3 HTTP报文 

1 请求报文

HTTP 请求报文通常包括以下四个部分:请求行(Request Line)
请求头(Request Headers)
空行(Empty Line)
请求体(Request Body,可选)1. 请求行(Request Line)
请求行是请求报文的第一行,包含以下三个部分:请求方法(HTTP Method):表示客户端希望执行的操作,如 GET、POST、PUT、DELETE 等。
请求目标(Request Target):通常是 URL 的路径部分,如 /index.html。
HTTP 版本(HTTP Version):表示客户端使用的 HTTP 协议版本,如 HTTP/1.1 或 HTTP/2。2. 请求头(Request Headers)
请求头是键值对的形式,用于传递附加信息,如客户端信息、请求内容类型、缓存控制等。每个请求头占一行,格式为 <字段名>: <值>。
常见请求头:
Host:目标服务器的主机名和端口号(如 Host: example.com)。
User-Agent:客户端信息(如 User-Agent: Mozilla/5.0)。
Accept:客户端可以接受的响应内容类型(如 Accept: text/html)。3. 空行(Empty Line)
请求头和请求体之间必须有一个空行,用于分隔两部分。4. 请求体(Request Body,可选)
请求体用于传递客户端发送给服务器的数据,通常用于 POST、PUT 等请求方法。请求体的格式由 Content-Type 请求头指定。
完整的 HTTP 请求报文示例
GET 请求GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
 2 响应报文

 

HTTP 响应报文的组成
HTTP 响应报文通常包括以下四个部分:状态行(Status Line)
响应头(Response Headers)
空行(Empty Line)
响应体(Response Body,可选)1. 状态行(Status Line)
状态行是响应报文的第一行,包含以下三个部分:
HTTP 版本(HTTP Version):表示服务器使用的 HTTP 协议版本,如 HTTP/1.1 或 HTTP/2。
状态码(Status Code):表示请求处理结果的三位数字代码,如 200、404、500 等。
状态信息(Status Message):对状态码的简短描述,如 OK、Not Found、Internal Server Error 等2. 响应头(Response Headers)
响应头是键值对的形式,用于传递附加信息,如服务器信息、响应内容类型、缓存控制等。每个响应头占一行,格式为 <字段名>: <值>。
常见响应头:
Server:服务器信息(如 Server: Apache/2.4.41)。
Content-Type:响应体的媒体类型(如 Content-Type: text/html)。3. 空行(Empty Line)
响应头和响应体之间必须有一个空行,用于分隔两部分。4. 响应体(Response Body,可选)
响应体是服务器返回给客户端的数据,通常是 HTML、JSON、XML 等格式。响应体的格式由 Content-Type 响应头指定。

完整的 HTTP 请求报文示例#响应状态行
< HTTP/1.1 403 Forbidden
#表示请求被拒绝,状态码403表示禁止访问#头部字段
< Date: Mon, 21 Aug 2023 11:00:34 GMT
#表示响应的日期和时间< Server: Apache/2.4.6 (CentOS)
#表示服务器正在使用的软件名称和版本< Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
#表示所请求资源的最后修改日期和时间< ETag: "1321-5058a1e728280"
#表示所请求资源的实体标签< Accept-Ranges: bytes
#服务器是否支持断点续传。< Content-Length: 4897
#响应实体主体的长度。< Content-Type: text/html; charset=UTF-8
#实体主体的类型和字符编码,表示响应内容是以UTF-8编码的HTML文本。

1.2.4 HTTP协议状态码

HTTP 状态码分类

状态码范围类别描述
1xx信息性状态码(Informational)表示请求已被接收,继续处理。
2xx成功状态码(Success)表示请求已成功被服务器接收、理解并处理。
3xx重定向状态码(Redirection)表示需要客户端进一步操作以完成请求。
4xx客户端错误状态码(Client Error)表示客户端发送的请求有错误,服务器无法处理。
5xx服务器错误状态码(Server Error)表示服务器在处理请求时发生错误

HTTP协议常用的状态码

200OK请求成功,响应体中包含请求的结果。
301Moved Permanently请求的资源已永久移动到新位置,客户端应使用新的 URL。
302Found请求的资源临时移动到新位置,客户端应使用新的 URL。
307Temporary Redirect请求的资源临时移动到新位置,客户端应使用原始请求方法访问。
401Unauthorized请求需要身份验证,客户端未提供有效的凭证。
403Forbidden服务器拒绝执行请求,客户端没有访问权限。
404Not Found请求的资源在服务器上未找到。
414URI Too Long请求URL头部过长
500Internal Server Error服务器在处理请求时发生未知错误。
502Bad Gateway服务器作为网关或代理时,从上游服务器收到无效响应。
503Service Unavailable服务器暂时无法处理请求,通常是由于过载或维护。
504Gateway Timeout服务器作为网关或代理时,未能及时从上游服务器收到响应。

1.2.5 HTTP方法

HTTP(超文本传输协议)定义了一组请求方法(也称为 HTTP 方法或 HTTP 动词),用于指定客户端对服务器上资源的操作方式。

HTTP 方法典型场景
GET获取资源(如网页、图片、用户信息)。
POST创建新资源(如提交表单、上传文件)。
PUT更新或替换资源(如更新用户信息)。
DELETE删除资源(如删除用户、删除文件)。
PATCH部分更新资源(如修改用户的某个字段)。
HEAD检查资源是否存在或获取资源的元信息。
OPTIONS获取服务器支持的 HTTP 方法或进行跨域请求预检。
TRACE诊断请求,用于调试。
CONNECT建立隧道连接,通常用于 HTTPS 代理。

 

 1.2.6 HTTP协议版本 

HTTP/0.9:极其简单,仅支持 GET 方法

HTTP/1.0:支持 多种方法,如 GETPOSTHEAD

HTTP/1.1: 支持长连接

二.HTML CSS和JavaScript

HTML、CSS 和 JavaScript 是构建现代网页和 Web 应用的三大核心技术。

2.1HTML

2.1.1HTML的概述

定义:Hyper Text Markup Language 超文本标记语言,编程语言,主要负责实现页面的结构

特点:使用标签(如<h1><p><div>)组织内容。

2.1.2 HTML中的部分基本标签(了解)

标签描述示例
<html>HTML文档的根元素,包含整个网页内容。<html lang="zh-CN">...</html>
<head>包含网页的元数据,如标题、字符编码等。<head><title>网页标题</title></head>
<title>定义网页的标题,显示在浏览器标签页上。<title>我的网页</title>
<body>包含网页的实际内容,用户可以看到的部分。<body><h1>欢迎</h1></body>
<h1> 到 <h6>定义标题,<h1>是最高级标题,<h6>是最低级标题。<h1>一级标题</h1>
<p>定义段落。<p>这是一个段落。</p>
<a>定义超链接。<a href="https://www.example.com">访问示例网站</a>
<img>插入图片。<img src="image.jpg" alt="图片描述">
<ul>定义无序列表。<ul><li>项目1</li><li>项目2</li></ul>
<ol>定义有序列表。<ol><li>第一项</li><li>第二项</li></ol>
<li>定义列表项。<li>列表项</li>
<table>定义表格。<table><tr><th>表头</th></tr><tr><td>数据</td></tr></table>
<tr>定义表格中的行。<tr><td>数据</td></tr>
<th>定义表格中的表头单元格。<th>表头</th>
<td>定义表格中的标准单元格。<td>数据</td>
<form>定义表单,用于收集用户输入。<form action="/submit" method="post"><input type="text"></form>
<div>通用的容器标签,用于分组和组织页面中的内容
<input>定义输入字段,用于表单中。<input type="text" placeholder="请输入">
<button>定义按钮。<button type="submit">提交</button>
<br>定义换行。<p>第一行<br>第二行</p>
<hr>定义水平分隔线。<hr>
<!-- -->定义注释,注释内容不会显示在页面上。<!-- 这是一个注释 -->

2.1.3 HTML的文件结构(了解) 

<html><head><title>网页标题</title></head><body><div><h1>标题</h1><p>段落内容</p></div></body>
</html>

2.2 CSS

  • 作用:控制网页的样式和布局。
  • 特点
    1. 使用选择器(如h1.class#id)选择元素。

    2. 通过属性和值(如color: red;)定义样式。

    3. 支持响应式设计(如媒体查询)。

2.3 JavaScript

  • 作用:实现网页的交互功能和动态行为。
  • 特点
    • 是一种脚本语言,运行在浏览器中。
    • 可以操作DOM(文档对象模型)动态修改网页内容。
    • 支持事件处理(如点击、输入)。
    • 通过AJAX与服务器异步通信

2.4 总结三者的关系

技术作用协作方式
HTML定义网页的结构和内容。提供网页的基本框架,CSS 和 JavaScript 在此基础上进行样式和交互的增强。
CSS控制网页的样式和布局。通过选择器选择 HTML 元素并应用样式,使网页更美观。
JavaScript实现网页的交互功能和动态行为。操作 DOM 修改 HTML 内容,监听事件响应用户操作,动态更新网页。

 三者协助:HTML 提供基础,CSS 美化页面,JavaScript 增强交互,共同构建现代 Web 应用。

三.URI 和 URL 

3.1定义

URI(Uniform Resource Identifier):统一资源标识,它包含两个子集:URL(Uniform Resource Locator):定位资源的位置。URN(Uniform Resource Name):标识资源的名称。

URL(Uniform Resorce Locator):统一资源定位符,用于描述某服务器某特定资源位置,通过 URL 可以访问资源(如网页、图片、文件等)。

3.2区别 

特性URLURN
目的定位资源的位置。标识资源的名称。
与位置关系与资源的位置相关。与资源的位置无关。
持久性资源位置变化时,URL 失效。资源位置变化时,URN 仍然有效。

3.3 URL的组成 

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

1. <scheme>(协议)

  • 作用:定义访问资源所使用的协议。

  • 常见协议

    • http:超文本传输协议(未加密)。

    • https:安全的超文本传输协议(加密)。

    • ftp:文件传输协议。

https://

2. <user>:<password>(用户名和密码)

  • 作用:用于访问需要身份验证的资源(如 FTP 服务器)。

  • 格式用户名:密码

user:password@

 3. <host>(主机名)

  • 作用:标识资源所在的服务器。

  • 格式:可以是域名(如 www.example.com)或 IP 地址(如 192.168.1.1)。

www.example.com

4. <port>(端口)

  • 作用:指定服务器上用于访问资源的端口号。

  • 默认端口

    • http 默认端口为 80

    • https 默认端口为 443

:8080

5. <path>(路径)

  • 作用:指定资源在服务器上的具体位置。

  • 格式:通常以 / 开头,表示目录层级。

/path/to/resource

6. <params>(参数)

  • 作用:为路径中的特定部分提供附加参数(较少使用)。

  • 格式:以 ; 分隔。

;param1=value1;param2=value2

7. <query>(查询参数)

  • 作用:向服务器传递额外的信息,通常用于过滤或搜索。

  • 格式:以 ? 开头,多个参数用 & 分隔。

?key1=value1&key2=value2

8. <frag>(片段)

  • 作用:定位页面内的特定部分(如锚点)。

  • 格式:以 # 开头。

#section1

 三.Apache的工作模式

3.1apache是什么

Apache 是一个广泛使用的开源 Web 服务器软件,正式名称为 Apache HTTP Server。它由 Apache 软件基金会(Apache Software Foundation, ASF)开发和维护,是互联网上最流行的 Web 服务器之一。

 3.2apache的三种工作模式 

Apache HTTP Server(通常称为Apache)支持三种主要的工作模式,这些模式决定了Apache如何处理并发请求和与操作系统的交互。

1. Prefork

  • 特点
    1. 每个请求由一个独立的子进程处理。

    2. 每个子进程是单线程的,只能处理一个请求。

    3. 适用于需要与某些非线程安全的库(如某些PHP模块)兼容的情况。

  • 优点
    1. 稳定性高,因为每个请求都在独立的进程中运行,一个进程崩溃不会影响其他进程。

    2. 兼容性好,适合与不支持线程的模块一起使用。

  • 缺点
    1. 内存消耗较大,因为每个请求都需要一个独立的进程。

    2. 并发处理能力有限,不适合高并发场景。

2. Worker 

  • 特点
    1. 使用多进程和多线程的混合模型。

    2. 每个进程可以创建多个线程,每个线程处理一个请求。

    3. 适合高并发的场景。

  • 优点
    1. 内存消耗相对较小,因为多个线程共享同一个进程的内存空间。

    2. 并发处理能力较强,适合处理大量并发请求。

  • 缺点
    1. 在某些情况下,工作节点可能会因为任务分配不均或任务数量不足而处于空闲状态,导致资源浪费。

    2. 相比Prefork模式,稳定性稍差,因为一个线程崩溃可能会影响整个进程。

3. Event 

  • 特点
    1. 基于Worker,但引入了异步事件处理机制。

    2. 使用单独的线程来处理连接,而请求处理则由其他线程完成。

    3. 特别适合处理大量长连接(如Keep-Alive连接)。

  • 优点
    1. 在高并发和长连接场景下性能优异。

    2. 内存消耗较低,适合处理大量并发连接。

  • 缺点
    1. 对某些非线程安全的模块可能存在兼容性问题。

    2. 配置和调优相对复杂。

    相关文章:

  • 回顾|Apache Cloudberry™ (Incubating) Meetup·2025 杭州站
  • 蓝桥杯Java全攻略:从零到一掌握竞赛与企业开发实战
  • 腾讯 Kuikly 正式开源,了解一下这个基于 Kotlin 的全平台框架
  • 基于esp32实现键值对存储读写c程序例程
  • MongoDB 操作全解析:从部署到安全控制的详细指南(含 emoji 趣味总结)
  • 测试基础笔记第十四天
  • 从回溯到记忆化搜索再到递推
  • 树莓派学习专题<11>:使用V4L2驱动获取摄像头数据--启动/停止数据流,数据捕获,缓存释放
  • Web前渗透
  • Win11 配置 Git 绑定 Github 账号的方法与问题汇总
  • flask返回文件的同时返回其他参数
  • 【密码学——基础理论与应用】李子臣编著 第七章 公钥密码 课后习题
  • ubuntu扩展逻辑卷并调整文件系统大小步骤
  • “RS232转Profinet,开启“变频器工业版绝绝子!”
  • Step1X-Edit: A practical framework for general image editing
  • 28-29【动手学深度学习】批量归一化 + ResNet
  • 《深入浅出Git:从版本控制原理到高效协作实战》​
  • uniapp-商城-42-shop 后台管理 分包
  • VRRP与BFD在冗余设计中的核心区别:从“备用网关”到“毫秒级故障检测”
  • [ACTF2020 新生赛]Upload
  • 黄仁勋访华期间表示希望继续与中国合作,贸促会回应
  • 坚守刑事检察一线13年,“在我心中每次庭审都是一次大考”
  • 广州一季度GDP为7532.51亿元,同比增长3%
  • 六部门:进一步优化离境退税政策扩大入境消费
  • 李彦宏:DeepSeek不是万能,多模态将是未来基础模型的标配
  • 政治局会议:积极维护多边主义,反对单边霸凌行径