牡丹江网站推广常州微信网站建设平台

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

牡丹江网站推广,常州微信网站建设平台,帮开设赌场的网站做美工,东莞企业网站建立报价目录 一、Web基础 1.1 HTML概述 1.1.1 HTML的文件结构 1.2 HTML中的部分基本标签 1.3 URI 和 URL 二.HTTP协议 2.1.HTTP概念 2.2.HTTP协议版本 2.3.HTTP请求方法 2.4.HTTP请求访问的完整过程 2.5.HTTP状态码 2.6.HTTP请求报文和响应报文 2.7.HTTP连接优化 三.HTT…目录 一、Web基础 1.1 HTML概述 1.1.1 HTML的文件结构 1.2 HTML中的部分基本标签 1.3 URI 和 URL 二.HTTP协议 2.1.HTTP概念 2.2.HTTP协议版本 2.3.HTTP请求方法 2.4.HTTP请求访问的完整过程 2.5.HTTP状态码 2.6.HTTP请求报文和响应报文 2.7.HTTP连接优化 三.HTTP介绍 3.1.HTTPD相关文件 3.2.HTTPD配置文件 四.HTTPD配置 4.1.基于IP地址 4.2.基于端口地址 4.3.基于域名 五.HTTPD三种工作模式 六.Cookie和Session 一、Web基础 1.1 HTML概述 HTMLHyperText Markup Language是一种用于创建网页结构和内容的标记语言。它被用于定义网页的结构包括文本、图像、链接、多媒体内容以及其他元素的排列方式。HTML通过使用一系列称为标签tags的特殊代码来描述页面上的不同元素从而告诉浏览器如何渲染和显示页面。 以下是HTML的一些基本概述 1. 标记语言HTML是一种标记语言它使用预定义的标签来标记文本中的不同部分以便浏览器能够正确地解释和渲染页面。 2. 标签TagsHTML标签是用尖括号包围的关键词如html、head、body、p等。标签告诉浏览器如何显示页面的内容以及如何组织这些内容。 3. 元素Elements标签与内容的组合被称为元素。一个元素通常由开始标签、内容和结束标签组成如p这是一个段落。/p。有些标签称为自封闭标签不需要结束标签如img用于插入图像。 4. 文档结构HTML文档通常包括!DOCTYPE声明、html元素、head元素和body元素。!DOCTYPE声明定义了文档的类型html元素是文档的根元素head元素包含有关文档的元信息而body元素包含实际显示在浏览器中的内容。 5. 属性Attributes标签可以包含属性这些属性提供了有关元素的附加信息。属性以名称-值对的形式出现放置在标签的开始标签中。例如在img标签中src属性指定图像的源文件。 6. 链接LinksHTML通过a标签创建超链接使用户能够在不同页面之间跳转。超链接可以指向其他页面、文件、位置或网络资源。 7. 列表、表格、表单HTML支持创建有序列表ol、无序列表ul、定义列表dl、表格table以及表单form等元素以便更好地组织和呈现内容。 8. 多媒体HTML支持嵌入图像、音频、视频和其他多媒体内容。例如img用于嵌入图像audio和video用于嵌入音频和视频。 9. 语义化HTML5引入了更多的语义元素如header、nav、section、article等使开发者能够更好地描述页面的结构和内容同时有助于搜索引擎优化和可访问性。 10. 版本演进HTML不断发展从初始版本到HTML5不断增加了新的功能和元素以适应不断变化的网络需求和技术。 总之HTML是构建网页内容和结构的基础它定义了网页上的各种元素和如何呈现它们为用户提供丰富的在线体验。与HTML配合使用的还有CSS层叠样式表用于样式设计和布局以及JavaScript用于实现交互和动态效果。 1.1.1 HTML的文件结构 HTML文件结构示例 !DOCTYPE html html headmeta charsetUTF-8titleDocument/title /head bodyheaderh1Page Title/h1navullia href#Home/a/lilia href#About/a/lilia href#Contact/a/li/ul/nav/headersectionh2Introduction/h2pThis is the introduction of the page./p/sectionsectionh2Content/h2pThis is the main content of the page./p/sectionfooterpcopy; 2023 Your Website/p/footer /body /html!DOCTYPE html这是文档类型声明指定文档使用的HTML版本。在此例中它表示使用HTML5。 html这是根元素包含了整个HTML文档的内容。 head头部部分包含有关文档的元信息如字符编码、标题等。 meta charsetUTF-8这个标签指定文档使用UTF-8字符编码以支持多种语言字符集。title这个标签设置网页的标题将显示在浏览器的标签页上。 body正文部分包含了实际显示在浏览器中的页面内容。 header通常包含网页的页眉内容如标题、导航等。 h1定义一个页面标题级别的标题。nav定义导航部分包含页面链接。 ul定义无序列表其中包含导航链接。li定义列表项其中包含导航链接。a定义超链接。 section通常用于划分页面的不同部分每个部分都可以包含一个标题和内容。 h2定义一个部分标题级别的标题。p定义段落。 footer通常包含网页的页脚内容如版权信息、联系方式等。 这只是一个基本的HTML文件结构示例实际上可以根据需要添加更多的元素和内容来构建更复杂的网页。这个结构有助于确保网页在各种浏览器中以一致的方式呈现并为搜索引擎优化和可访问性提供良好的基础。 1.2 HTML中的部分基本标签 基本标签    含义 以下是一些在HTML中常用的基本标签及其用途的简要概述1. htmlHTML文档的根元素包含文档的全部内容。2. head文档头部包含元信息不会在页面中显示。- meta定义文档的元信息如字符编码、关键词等。- title定义页面标题显示在浏览器标签栏或窗口标题栏上。3. body文档主体包含在浏览器中显示的内容。- h1, h2, h3…定义标题从大到小表示不同级别的标题。- p定义段落。- br插入换行。- hr插入水平线分隔。- em强调文本通常以斜体显示。- strong强调文本通常以加粗显示。- a创建超链接。- img插入图像。- ul定义无序列表。- ol定义有序列表。- li定义列表项。- table定义表格。- tr定义表格行。- th定义表头单元格。- td定义表格数据单元格。4. div通用的容器标签用于分组和样式化内容。5. span行内容器标签用于样式化文本或包裹少量内容。6. form创建表单用于用户输入数据。- input输入字段如文本框、单选按钮、复选框等。- textarea多行文本输入框。- select下拉菜单。- button按钮。7. label标签用于表单元素的标注提高可访问性。8. iframe嵌入其他网页或文档。9. audio、video用于嵌入音频和视频。10. script用于插入JavaScript代码。11. style用于内部定义CSS样式。12. link链接外部资源如CSS文件。13. meta定义文档元信息如字符编码和关键词。14. meta用于指定文档的字符编码。15. meta设置网页的关键字。这些标签只是HTML中的一部分还有许多其他标签可以用于构建更丰富和复杂的页面。每个标签都有其独特的功能和用途可以根据需要选择适当的标签来实现所需的效果。 1.3 URI 和 URL 概念 URIUniform Resource Identifier和URLUniform Resource Locator之间存在微妙的区别尽管它们通常被混用。 1. URIUniform Resource Identifier    - URI是一个通用的术语用于标识任何形式的资源不仅限于互联网资源。它可以用于标识本地文件、数据库条目等。    - URI可以被分为两种子类URL和URN。    - 例如一个ISBN号International Standard Book Number就是一个URN用于唯一标识一本书但它不提供定位信息。 2. URLUniform Resource Locator    - URL是URI的一种特定形式它不仅标识资源还提供了资源的定位信息允许通过某种协议访问资源。    - URL包含了资源的位置信息包括协议、主机、路径等。    - 由于URL提供了资源的定位因此它常常被用来引用网页、图像、视频等网络资源。 3. URNUniform Resource Name    - URN是URI的另一种子类它用于通过名称来标识资源而不提供资源的位置信息。    - URN的目标是提供持久、独一无二的资源标识使资源可以在不同位置和协议上被访问而不受位置和协议的限制。 总之URI是一个更广泛的概念用于标识各种资源。URL是URI的一种特定类型提供了资源的标识和定位信息。URN是另一种URI子类用于通过名称来标识资源但不提供定位信息。在实际使用中术语URL经常用于表示资源的标识和定位因此这两个概念通常被混淆。 URIUniform Resource Identifier和URLUniform Resource Locator是与定位和标识资源在互联网上的方法相关的概念。尽管它们通常被用来描述相同的内容但它们在技术上有些微妙的区别。 URIUniform Resource Identifier是一个通用的术语用于标识某个资源的唯一名称。URI可以包含URL和URNUniform Resource Name。URN是一种通过名称来标识资源的方式而URL则是一种通过位置来标识资源的方式。 URLUniform Resource Locator是URI的一个特定类型它不仅标识资源的名称还提供了用于定位资源的信息通常是一个网络地址。URL包括以下几个主要部分 1. 方案Scheme指定用于访问资源的协议或方式如http、https、ftp等。2. 主机Host资源所在的服务器的域名或IP地址。3. 端口Port资源服务器监听的端口号如果省略则使用默认端口。4. 路径Path资源在服务器上的路径指示资源的位置。5. 查询字符串Query用于传递参数给资源的字符串通常以键值对的形式存在。6. 片段标识Fragment指向资源中的一个特定片段常用于指示文档中的特定部分如页面锚点。 以下是一个URL的示例 https://www.example.com:8080/products?id12345page1#section-2 - 方案https - 主机www.example.com - 端口8080 - 路径/products - 查询字符串id12345page1 - 片段标识section-2 总之URI是一个通用的概念用于标识资源。URL是URI的一种特定类型它提供了定位资源的详细信息包括协议、域名、路径等。 URI 和 URL 的区别     定义范围URI是一个广义的概念用于标识和命名互联网上的资源,可以是URL、URN或其他形式。URL是URI的一种具体实现形式用于资源的定位和访问。     功能重点URI强调资源的标识性用于唯一标识和命名资源。URL则更注重资源的位置性其中包含了定位和访问资源所需的详细信息。 动态资源和静态资源 动态资源和静态资源是两种在Web开发中常用的术语用于描述不同类型的网页内容。它们之间的区别在于如何生成和呈现内容以及在客户端和服务器之间的交互方式。 静态资源Static Resources 静态资源是在服务器上提前创建好并保存在文件系统中的内容不会在请求时进行任何改变。这些资源可以是HTML、CSS、JavaScript、图像、音频、视频等文件。当客户端请求这些静态资源时服务器会直接将文件发送给客户端不涉及服务器端的处理。 静态资源指的是在服务器上保存的文件其内容在请求和传输过程中不发生变化。 静态资源可以是图片、CSS样式表、JavaScript文件、HTML文件等。 静态资源的请求一般是通过URL直接访问,当客户端发送请求时服务器直接将这些文件返回给客户端不进行任何处理。 优点 - 加载速度较快由于内容已经准备好并保存在文件系统中直接返回给客户端无需额外的服务器处理。 - 适用于不经常变化的内容如图像、CSS等。 缺点 - 无法根据用户的个性化需求动态生成内容。 - 不适合处理需要实时更新的内容。 动态资源Dynamic Resources 动态资源是在请求时根据客户端请求的参数或其他信息通过服务器端的处理动态生成的内容。这些资源可以是动态网页、用户个人信息、实时数据等。 动态资源则是在服务器端通过执行脚本或程序生成的内容,需要占用服务器的资源。 服务器会根据请求中的参数和数据执行相应的脚本或程序来生成动态内容然后将生成的内容返回给客户端。 动态资源可以是动态网页、API接口等。 优点 - 可根据用户请求生成个性化内容如个人资料、搜索结果等。 - 可与数据库或其他后端逻辑进行交互实现实时更新的功能。 缺点 - 由于涉及服务器端的处理加载速度可能较慢特别是在高流量时。 - 需要服务器端的处理逻辑可能增加服务器负担。 通常静态资源适用于不频繁变化的内容而动态资源适用于需要个性化或实时更新的内容。在实际的Web开发中这两种资源往往会结合使用以实现更好的用户体验和功能。例如一个动态网页可能包含静态的CSS和JavaScript文件但根据用户请求动态生成内容。 二.HTTP协议 2.1.HTTP概念 HTTPHypertext Transfer Protocol是一种用于在Web上传输数据的协议。它是客户端和服务器之间通信的一种规范用于请求和响应Web资源。HTTP协议是互联网上最为广泛使用的协议之一它定义了客户端如浏览器和服务器之间如何交换信息。 以下是HTTP协议的一些关键特点和工作方式 1. 客户端-服务器模型HTTP使用客户端-服务器模型其中客户端发出请求服务器提供响应。客户端通常是浏览器而服务器是存储和提供Web资源的主机。 2. 请求Request客户端发送HTTP请求以获取特定资源。请求包括请求方法、URL、HTTP版本、请求头部和请求体。常见的请求方法包括GET获取资源、POST提交数据、PUT更新资源、DELETE删除资源等。 3. 响应Response服务器根据客户端的请求发送HTTP响应其中包含状态码、响应头部和响应体。状态码指示了请求的结果如200表示成功404表示资源未找到500表示服务器错误等。 4. URLUniform Resource LocatorURL用于标识资源的位置。HTTP请求中的URL指示了客户端想要访问的资源。 5. 状态保持HTTP是一种无状态协议每个请求和响应之间是独立的服务器不会保留客户端的状态。为了实现状态保持使用了Cookie和Session等机制。 6. CookieCookie是在客户端存储的小型数据片段由服务器发送到客户端并在后续请求中返回用于跟踪用户状态和存储用户数据。 7. 缓存HTTP支持缓存机制使得浏览器可以存储一些资源的副本以减少网络请求提高性能。 8. 安全性HTTP本身不是加密的故数据传输可能会被拦截。为了保护数据安全通常使用HTTPSHTTP Secure协议它在HTTP基础上添加了加密层。 9. 持久连接为了减少每次请求的开销HTTP支持持久连接允许在同一连接上发送多个请求和响应。 总之HTTP是Web通信的基础通过定义请求和响应的格式使客户端能够从服务器请求资源并获得适当的响应。它是构建Web应用程序和浏览器之间交互的基石。 HTTP协议采用了请求/响应模型。 客户端向服务器发送一个请求请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。 服务器以一个状态行作为响应响应的内容包括消息协议的版本成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。 2.2.HTTP协议版本 HTTP协议经过多次演进产生了不同版本。以下是一些主要的HTTP协议版本 1. HTTP/0.9    - 1991年首次发布作为早期的HTTP协议版本。    - 非常简单只支持GET请求并且响应只能是HTML内容。    - 不支持请求头、响应头等现代HTTP特性。 2. HTTP/1.0    - 1996年发布引入了更多的功能。    - 支持多种HTTP请求方法如GET、POST、HEAD等。    - 引入了请求头、响应头等特性使得通信更加丰富。    - 每个请求-响应都需要一个单独的TCP连接效率较低。 3. HTTP/1.1    - 1999年发布是一个重要的协议版本。    - 引入了持久连接Connection Keep-Alive以减少连接开销。    - 引入了管道化Pipelining允许多个请求在一个连接上同时发送。    - 引入了虚拟主机Virtual Host支持使多个域名可以共享同一个IP地址。    - 引入了块传输编码Chunked Transfer Encoding和缓存机制等。 4. HTTP/2    - 2015年发布是HTTP/1.1的继任者。    - 引入了二进制分帧层将HTTP消息拆分成多个帧并以二进制编码传输提高了传输效率。    - 支持多路复用多个请求可以在一个连接上同时进行减少了延迟。    - 引入了首部压缩减少了传输的开销。    - 提升了安全性要求使用TLS加密。 5. HTTP/3    - 2020年发布是HTTP/2的继任者。    - 基于QUIC协议引入了更多的性能优化。    - 减少了握手延迟提升了连接的建立速度。    - 改进了拥塞控制和流量控制机制。 每个HTTP协议版本都在不同程度上改进了性能、安全性和功能以适应不断变化的网络需求。在实际开发中了解不同版本的特性和差异是非常重要的以便选择适合的版本来优化网站或应用的性能和用户体验。 2.3.HTTP请求方法 HTTP定义了多种请求方法也称为动作或动词用于指示客户端希望服务器执行的操作。以下是一些常见的HTTP请求方法及其用途 1. GET    - 用于请求指定资源的表示形式。    - 请求参数会附加在URL的查询字符串中。    - 不应该用于传输敏感数据因为参数会暴露在URL中。 2. POST    - 用于向服务器提交数据通常用于创建新资源。    - 请求参数通常包含在请求的正文中而不是URL中。 3. PUT    - 用于更新指定资源或在不存在时创建资源。    - 请求中的数据会替代服务器上的相应资源。 4. DELETE    - 用于删除指定资源。    - 可能需要对资源进行身份验证以确保权限。 5. PATCH    - 用于对资源进行部分更新。    - 请求中的数据表示资源的部分状态。 6. HEAD    - 类似于GET请求但服务器只返回响应头不返回实际内容。    - 用于检查资源是否存在以及获取其元数据但不获取实际数据。 7. OPTIONS    - 用于请求关于服务器支持的请求方法、跨域设置等信息。    - 服务器会返回支持的方法列表等信息。 8. CONNECT    - 用于建立到资源的网络连接通常用于代理服务器。 9. TRACE    - 用于执行一个消息回环测试服务器会返回收到的请求内容。    - 主要用于调试和诊断。 10. LINKUNLINK    - 用于创建和删除链接但很少使用。 这些HTTP请求方法使客户端能够以不同的方式与服务器交互执行不同的操作。在实际的Web应用程序中通常会根据需要使用适当的请求方法来实现所需的功能。 1、GET请求会向数据库发索取数据的请求从而来获取信息该请求不会产生副作用。无论进行多少次操作结果都是一样的。 2、与GET不同的是PUT请求是向服务器端发送数据的从而改变信息无论进行多少次PUT操作其结果并没有不同。 3、POST请求同PUT请求类似都是向服务器端发送数据的但是该请求会改变数据的种类等资源几乎目前所有的提交操作都是用POST请求的。 4、DELETE请求顾名思义就是用来删除某一个资源的。 2.4.HTTP请求访问的完整过程 1.建立连接 2.接收请求 3.处理请求 4.访问资源 5.构建响应报文 6.发送响应报文 7.记录日志 2.5.HTTP状态码 #产生502无效网关的原因 数据包没有送到网卡网络问题 数据包送进去了交换机能抓到包但是网卡没收到网卡问题或防火墙问题 网卡接收到了处理不了服务问题。比如服务器当前连接太多响应太慢页面素材太多带宽不够。 2.6.HTTP请求报文和响应报文 HTTP请求报文和响应报文是在客户端和服务器之间传输的数据结构用于请求和响应Web资源。它们包含了不同的部分以描述请求或响应的详细信息。以下是HTTP请求报文和响应报文的基本结构和组成部分 HTTP请求报文 一个HTTP请求报文由以下部分组成 1. 请求行包括请求方法、请求的URL和HTTP协议版本。 2. 请求头部包含各种请求的元信息如用户代理信息、接受的数据类型、认证信息等。 3. 空行一个空行用于分隔请求头部和请求体。 4. 请求体在某些请求中如POST请求可以包含传输的数据如表单数据、JSON数据等。 以下是一个HTTP请求报文的示例 GET /example/page.html HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Accept: text/html,application/xhtmlxml HTTP响应报文 一个HTTP响应报文由以下部分组成 1. 状态行包括HTTP协议版本、状态码和状态短语。 2. 响应头部包含响应的元信息如服务器信息、数据类型、响应时间等。 3. 空行一个空行用于分隔响应头部和响应体。 4. 响应体包含实际的响应数据如HTML内容、JSON数据等。 以下是一个HTTP响应报文的示例 HTTP/1.1 200 OK Date: Thu, 27 Aug 2023 12:00:00 GMT Server: Apache Content-Type: text/html; charsetUTF-8 !DOCTYPE html html head     titleExample Page/title /head body     h1Hello, World!/h1 /body /html 总之HTTP请求报文和响应报文是用于传输客户端请求和服务器响应的结构化数据。它们的组成部分提供了关于请求和响应的详细信息使得客户端和服务器可以有效地进行通信。 2.7.HTTP连接优化 HTTP连接优化是一系列技术和方法用于改善网页加载速度、性能和用户体验。优化HTTP连接可以减少延迟、提高传输效率并减轻服务器和客户端的负担。以下是一些常见的HTTP连接优化技术 1. 使用持久连接    - HTTP/1.1引入了持久连接Connection Keep-Alive允许在同一连接上发送多个请求和响应避免了频繁的连接和关闭过程。 2. 使用HTTP/2    - HTTP/2引入了二进制分帧、多路复用等特性显著提升了性能。多个请求可以同时在同一连接上进行减少了延迟。3. 减少请求次数    - 使用合并文件和雪碧图将多个资源合并为一个请求减少请求的数量。    - 使用图像格式的压缩以减小文件大小。 4. 使用CDN内容分发网络**    - 将资源分布到多个地理位置的服务器上使用户可以从最近的服务器获取资源提高加载速度。 5. 启用压缩    - 使用Gzip或Brotli等压缩算法减小传输的数据量加快下载速度。 6. 使用缓存    - 使用HTTP缓存机制使得浏览器可以缓存资源减少重复请求。 7. 优化图片    - 使用适当的图像格式如JPEG、PNG、WebP以及图像压缩工具。    - 按需加载图片延迟加载或懒加载不在视窗内的图片。 8. 使用预加载和预渲染    - 预加载使用link relpreload指示浏览器提前加载资源以便在需要时立即使用。    - 预渲染使用link relprerender指示浏览器提前渲染整个页面以提高用户点击后的响应速度。 9. 优化字体    - 使用适量的字体格式避免加载不必要的字体资源。    - 考虑使用Web字体以便在跨平台和设备上显示一致的字体。 10. 最小化和组织代码     - 使用CSS和JavaScript压缩工具减小文件大小。     - 将CSS和JavaScript文件合并为较少的文件减少HTTP请求。 11. *并行连接 ** 并行连接通过同时建立多个连接 使得客户端可以并发地发送多个请求以提高并发性和响应速度。 12. ** 管道化连接** 管道化连接是一种在持久连接上发送多个请求而无需等待服务器响应的机制 通过综合使用这些优化技术您可以显著提升网页的加载速度和性能为用户提供更好的体验。不同的网站和应用可能需要根据其特定的需求选择不同的优化策略。 三.HTTP介绍 3.1.HTTPD相关文件 Httpd通常是指Apache HTTP Server也称为Apache。它是一款开源的、跨平台的Web服务器软件用于提供Web内容和服务。以下是与Apache HTTP Server相关的一些常见文件和目录 1. httpd.conf    - 主要配置文件用于配置Apache的全局设置、模块加载、虚拟主机等。    - 位于Apache配置文件目录中通常是/etc/httpd/或/etc/apache2/。 2. httpd-vhosts.conf    - 虚拟主机配置文件用于定义不同域名或IP上的虚拟主机设置。    - 通常在主配置文件中通过Include指令引入。 3. httpd.conf.d/ 或 conf-available/    - 额外的配置文件目录用于组织和管理配置文件的模块化。    - 不同的模块或功能可以在各自的配置文件中进行设置。 4. htdocs/ 或 public_html/    - 默认的Web文档根目录存放Web服务器提供的内容。    - 可以通过配置文件更改文档根目录的位置。 5. logs/    - 日志目录存放Apache生成的日志文件包括访问日志和错误日志。    - 访问日志记录来自客户端的请求错误日志记录服务器错误和警告。 6. modules/ 或 mods-available/    - 存放Apache模块文件的目录模块提供额外的功能和特性。    - 通常通过加载模块来启用相应的功能。 7. ssl/ 或 conf/extra/httpd-ssl.conf    - 存放SSL安全套接字层相关配置文件的目录用于配置HTTPS和加密通信。    - httpd-ssl.conf 文件用于配置SSL设置。 8. cgi-bin/    - 存放CGI公共网关接口脚本的目录用于在服务器上运行动态脚本。 9. conf/mime.types    - MIME 类型映射文件定义文件扩展名和相应的MIME类型。 10. conf/extra/httpd-userdir.conf     - 用户目录配置文件允许用户在其主目录中创建公共的 public_html 目录用于Web内容。 这些是Apache HTTP Server常见的文件和目录。根据不同的操作系统和安装方式具体的文件结构可能会有所不同。如需深入了解和管理Apache建议查阅官方文档或相关资源。 3.2.HTTPD配置文件 yum install -y httpd #安装 #主配置文件 /etc/httpd/conf/httpd.conf   #子配置文件 /etc/httpd/conf.d/.conf #模块加载的配置文件 /etc/httpd/conf.d/conf.modules.d/  检查配置语法httpd -t 或 apache2 -t 站点网页文档根目录/var/www/html 服务单元文件 /usr/lib/systemd/system/httpd.service 配置文件/etc/sysconfig/httpd 主服务器程序文件 /usr/sbin/httpd 模块文件 /etc/httpd/modules /usr/lib64/httpd/modules httpd服务控制和启动命令部分 #开启自启动/开机自动关闭 httpd服务 systemctl enable|disable httpd.service 开启httpd服务 systemctl start httpd.service or apachectl start or service httpd start 重启httpd服务 systemctl start httpd.service or apachectl restart or service httpd restart 停止httpd服务 systemctl stop httpd.service or apachectl stop or service httpd stop 查看httpd服务的运行状态 systemctl status httpd 配置文件语法检查 apachectl configtest or service httpd configtest 四.HTTPD配置 4.1.基于IP地址 在Apache HTTP Server通常称为httpd中您可以基于IP地址配置虚拟主机从而为不同的IP地址提供不同的网站或应用程序。这在多个网站共享同一台服务器的情况下非常有用。以下是基于IP地址进行配置的一般步骤 1. 编辑虚拟主机配置文件    首先您需要编辑Apache的虚拟主机配置文件。该文件通常是 httpd-vhosts.conf 或类似的文件具体名称和路径取决于您的安装方式和操作系统。 2. 添加虚拟主机配置块    在配置文件中为每个IP地址添加一个虚拟主机配置块。每个虚拟主机配置块将包含该IP地址的特定配置信息如文档根目录、日志位置等。    apache    VirtualHost 192.168.1.10        DocumentRoot /var/www/site1        ServerName site1.example.com        ErrorLog /var/log/httpd/site1_error.log        CustomLog /var/log/httpd/site1_access.log combined    /VirtualHost    3. 重启或重新加载Apache    保存配置文件后您需要重启或重新加载Apache以使更改生效。具体的命令可能因操作系统而异。例如在大多数Linux系统中您可以使用以下命令来重新加载配置    sh    sudo systemctl reload httpd    4. 配置DNS解析    如果您想要使用域名访问虚拟主机您需要确保域名解析到正确的IP地址。您可以在DNS设置中为每个域名指定相应的IP地址。 5. 测试访问    一旦配置完成并重启Apache您可以通过IP地址或域名访问配置的虚拟主机。确保您的虚拟主机配置正常工作。 通过以上步骤您可以为不同的IP地址配置不同的虚拟主机从而实现在同一台服务器上为多个IP地址提供不同的Web内容。注意每个虚拟主机需要有独立的配置块并且每个IP地址只能在一个虚拟主机中使用。 4.2.基于端口地址 在Apache HTTP Server通常称为httpd中您可以基于不同的端口配置虚拟主机从而在同一台服务器上为不同的端口提供不同的网站或应用程序。这对于在单台服务器上托管多个应用程序或网站非常有用。以下是基于端口地址进行配置的一般步骤 1. 编辑虚拟主机配置文件    首先您需要编辑Apache的虚拟主机配置文件。通常这个文件是 httpd-vhosts.conf 或类似的文件具体名称和路径可能因您的操作系统和安装方式而异。 2. 添加虚拟主机配置块    在配置文件中为每个端口添加一个虚拟主机配置块。每个虚拟主机配置块将包含该端口的特定配置信息如文档根目录、日志位置等。    apache    VirtualHost *:8080        DocumentRoot /var/www/site1        ServerName example.com        ErrorLog /var/log/httpd/site1_error.log        CustomLog /var/log/httpd/site1_access.log combined    /VirtualHost    3. 重启或重新加载Apache    保存配置文件后您需要重启或重新加载Apache以使更改生效。具体的命令可能因操作系统而异。例如在大多数Linux系统中您可以使用以下命令来重新加载配置    sh    sudo systemctl reload httpd    4. 测试访问    一旦配置完成并重启Apache您可以通过指定的端口访问配置的虚拟主机。确保您的虚拟主机配置正常工作。 5. 防火墙配置    如果使用非标准的端口如80或443请确保服务器的防火墙允许访问这些端口。 通过以上步骤您可以为不同的端口配置不同的虚拟主机从而在同一台服务器上为多个端口提供不同的Web内容。请注意每个虚拟主机需要有独立的配置块并且每个端口只能在一个虚拟主机中使用。 4.3.基于域名 在 Apache HTTP Server通常称为httpd中基于域名配置虚拟主机是一种常见的做法允许您在同一台服务器上为不同的域名提供不同的网站或应用程序。以下是基于域名进行配置的一般步骤 1. 编辑虚拟主机配置文件    打开 Apache 的虚拟主机配置文件。通常这个文件被称为 httpd-vhosts.conf但具体名称和路径取决于您的安装方式和操作系统。 2. 添加虚拟主机配置块    在配置文件中为每个域名添加一个虚拟主机配置块。每个虚拟主机配置块将包含与该域名相关的配置信息例如文档根目录、日志位置等。    apache    VirtualHost *:80        ServerName example.com        DocumentRoot /var/www/site1        ErrorLog /var/log/httpd/site1_error.log        CustomLog /var/log/httpd/site1_access.log combined    /VirtualHost       在上面的示例中ServerName 指令指定了虚拟主机要响应的域名DocumentRoot 指令指定了网站文件的根目录而 ErrorLog 和 CustomLog 指令定义了错误日志和访问日志的位置。 3. 重启或重新加载Apache    保存虚拟主机配置文件后您需要重新启动或重新加载 Apache 以使更改生效。在大多数Linux系统中您可以使用以下命令重新加载配置    sh    sudo systemctl reload httpd    4. 配置DNS解析    确保您的域名已经解析到服务器的IP地址。您可以在DNS设置中为每个域名指定正确的IP地址。 5. 测试访问    一旦配置完成并重新加载了 Apache您可以通过访问指定的域名来访问配置的虚拟主机。确保虚拟主机正常运行。 通过以上步骤您可以为不同的域名配置不同的虚拟主机从而在同一台服务器上为多个域名提供不同的网站内容。每个虚拟主机需要有独立的配置块并且每个域名只能在一个虚拟主机中使用。 五.HTTPD三种工作模式 Apache HTTP Serverhttpd有三种常见的工作模式也称为MPMMulti-Processing Module模式用于处理并发连接和请求。每种工作模式在不同的场景下有不同的性能和资源消耗表现。以下是这三种工作模式 1. Prefork MPM    Prefork 是 Apache 最传统的工作模式。在这个模式下每个客户端请求都会由一个单独的子进程来处理。这意味着每个请求都在自己的进程中运行因此稳定性和隔离性较高但也会消耗较多的系统资源。    Prefork MPM 适用于需要独立进程隔离、不需要太高性能的环境比如传统的 CGI 或 PHP-CGI 模式。 2. Worker MPM    Worker 是另一种常见的工作模式。在这个模式下主进程会创建多个子进程每个子进程又可以创建多个线程。每个线程可以处理一个客户端连接和请求。这种模式可以更有效地利用多核 CPU 和线程提供更高的性能。    Worker MPM 适用于需要处理大量连接和请求的高并发环境尤其是在静态资源较多的情况下。 3. Event MPM    Event 是 Worker MPM 的改进版本。在 Event 模式下主进程会创建多个子进程每个子进程可以创建多个线程。与 Worker MPM 不同的是Event MPM 使用更高效的事件驱动机制来处理连接和请求减少了资源的浪费。    Event MPM 适用于高并发环境并且相比 Worker MPM可以更好地处理大量并发连接。 选择适当的 MPM 模式取决于您的应用需求和服务器硬件。Prefork 适用于低并发、需要隔离性的场景。Worker 和 Event 适用于需要高性能和高并发的环境其中 Event 模式通常更适合。根据您的具体用例选择最合适的 MPM 模式来优化 Apache 的性能和资源利用率。 总结 prefork一对一模式处理一个请求开启一个进程缺点是httpd服务进程数有上限。 worker一对多模式规定一个进程处理多少个请求缺点是处理完自己的请求空闲不会告知服务器。 event一对多模式且有一个监听进程若有处理完请求的空闲进程会通知服务器分配新的请求。 六.Cookie和Session Cookie和Session用于解决http协议无状态 Cookie和Session都是在Web开发中用于管理用户状态和跟踪用户会话的机制。它们都用于在客户端和服务器之间传递数据但在工作方式和用途上有一些区别。 CookieHTTP Cookie Cookie是存储在用户浏览器中的小段文本数据用于跟踪用户的访问和状态。当服务器响应请求时可以在响应头中设置一个或多个Cookie然后浏览器将这些Cookie存储在用户的计算机上。浏览器在每次请求中都会将相关的Cookie信息发送给服务器。 特点 - 存储在浏览器中可以在浏览器会话之间保持状态。 - 可以设置过期时间控制Cookie的生存周期。 - 可以存储少量数据但不适合存储敏感信息因为Cookie可以被用户查看和修改。 - 用于跟踪用户实现一些基本的用户认证和个性化体验。 Session会话 Session是一种在服务器端存储用户状态和数据的机制。当用户访问服务器时服务器会创建一个唯一的会话标识符Session ID然后将相关的用户数据存储在服务器上。这个Session ID通常通过Cookie在浏览器和服务器之间传递。 特点 - 数据存储在服务器上用户无法直接访问或修改。 - 适合存储敏感数据因为数据存储在服务器上不会暴露给用户。 - 会话在服务器端管理可以存储更大量的数据。 - 可以用于用户认证、数据保持、购物车等。 Cookie和Session之间的关系 - 通常会话机制Session是基于Cookie的因为会话ID通常存储在Cookie中以便在浏览器和服务器之间传递。 - 当用户第一次访问服务器时服务器会创建一个新的会话并生成一个唯一的会话ID。然后服务器会将该会话ID存储在Cookie中供浏览器在后续请求中发送。 - 服务器根据接收到的会话ID查找相关的会话数据从而管理用户状态和数据。 综合来看Cookie和Session在Web开发中都扮演重要角色用于管理用户状态、保持数据和提供个性化体验。根据具体需求您可以选择使用其中一种或两者的组合