Web基础与HTTP协议

admin2024-07-05  13

一,Web基础

        1:域名和DNS

                1.域名的概念

域名是互联网上用于识别和定位计算机服务的层次式字符标识,它提供了比IP地址更为友好的访问方式。一个完整的域名由多个标签组成,从右至左依次为顶级域名(如.com、.org、.net)、二级域名(公司或组织名称)、三级域名等,直至最左侧的主机名。

                2.Hosts文件

                (1):Hosts文件的作用
  • 本地解析:Hosts文件允许用户在本地计算机上定义域名到IP地址的映射关系,使得当浏览器或其他应用程序尝试访问特定域名时,可以直接使用文件中定义的IP地址,而不必查询DNS服务器。
  • 网络调试:对于开发人员和系统管理员来说,Hosts文件是进行网络调试的有用工具,可以通过更改域名指向来测试不同的服务器配置,或者阻止访问某些网站。
  • 安全策略:企业或个人有时会利用Hosts文件来实施安全策略,比如阻止恶意软件通过域名访问其命令与控制服务器。
                (2):修改Hostswenjian

修改Hosts文件通常需要管理员权限。以下是几个常见操作系统的Hosts文件位置及修改方法:

  • Windows: 通常位于 C:\Windows\System32\drivers\etc\hosts。使用文本编辑器(如Notepad++)以管理员身份打开并编辑。
  • macOS/Linux: 位于 /etc/hosts。使用终端编辑(如使用sudo nano /etc/hosts命令)。

                3.DNS

DNS是一个分布式的、层级式的命名系统,负责将人类可读的域名转换为机器可识别的IP地址,从而使得用户可以通过域名访问互联网资源。DNS系统包括但不限于:

  • 根域名服务器:位于DNS体系的顶端,负责引导查询到下一级域名服务器。
  • 顶级域名服务器:管理.com、.org、.net等顶级域名的服务器。
  • 权威域名服务器:存储具体域名到IP地址映射的服务器。
  • 递归解析器:帮助客户端进行域名解析的服务器,通常由用户的ISP提供。

                4.域名注册

域名注册是通过专业的域名注册服务商进行的过程,主要步骤包括:

  • 查询域名:在注册平台检查想要注册的域名是否已被占用。
  • 选择注册期:确定域名的注册年限。
  • 填写信息:提交注册人、管理联系人、技术联系人和缴费联系人的信息,可能需要实名认证。
  • 支付费用:根据域名后缀的不同,费用也有所差异,支付后域名即注册成功。
  • 设置DNS记录:在注册商提供的控制面板或通过DNS服务提供商设置域名解析,指向网站服务器或邮箱服务器等。

        2:网页与HTML

                1.网页概述

网页是构成网站的基本元素,通过浏览器呈现给用户,包含文字、图像、视频、音频等多媒体元素以及交互功能。网页通过HTML、CSS和JavaScript等技术编写,可以是静态的也可以是动态的,根据用户的请求或输入实时变化。

                2.HTML概述

HTML(HyperText Markup Language,超文本标记语言)是一种用于编写网页的标准标记语言。它使用一系列的标签来定义网页内容的结构和样式,如段落、标题、图像、链接等。HTML文档由一系列元素构成,每个元素由标签包围,标签通常成对出现,如<p></p>定义一个段落。

                3.HTML基本标签

  • 文档结构标签:

    • <html>: 根标签,包裹整个HTML文档。
    • <head>: 包含文档的元数据,如字符集、样式链接等。
    • <title>: 定义文档标题,在浏览器的标题栏或页面标签上显示。
  • 内容标签:

    • <body>: 包含网页的所有可见内容。
    • <h1>-<h6>: 定义不同级别的标题。
    • <p>: 段落。
    • <a href="...">: 超链接,链接到其他网页或资源。
    • <img src="..." alt="...">: 插入图片,alt属性为图片无法显示时的替代文本。
    • <ul>/<li> 和 <ol>/<li>: 无序列表和有序列表及其列表项。
  • 表格标签:

    • <table>: 表格容器。
    • <tr>: 表格行。
    • <td>: 表格单元格。
    • <th>: 表头单元格。

                4.网站和主页

  • 网站:由一系列相关的网页构成,通过一个共同的域名访问,提供信息、服务、产品展示等多种功能。
  • 主页(Homepage):通常是网站的起始页面,也是用户首次访问时看到的页面,起到门户和导航的作用,提供对网站其他部分的快速访问链接。

                5.Web1.0与Web2.0

  • Web1.0:互联网的早期形态,特点是以静态内容为主,信息流动方向主要是从服务器到用户,用户间的互动有限,网站内容主要由网站管理员发布和更新。
  • Web2.0:强调用户参与和互动,用户不仅是内容的消费者,也是创造者。通过博客、社交媒体、维基百科等平台,用户可以上传、分享、评论内容,形成社区和网络效应。Web2.0技术包括Ajax、APIs、RSS等,使得网站更加动态、个性化和社交化。

        3:静态网页与动态网页

                1.静态网页

静态网页是指其内容在服务器上预先创建好,不会根据用户请求或时间变化而改变的网页。这类网页的特点是:

  • 内容固定:每个访问者看到的内容相同。
  • 简单快速:服务器只需直接发送文件,无需执行程序或查询数据库。
  • 易维护:对于少量内容的网站,直接编辑HTML文件即可更新。
  • SEO友好:由于内容稳定,搜索引擎更容易抓取和索引。

                2.动态网页

动态网页能够根据用户请求、时间、数据库操作等条件动态生成内容,提供个性化体验。其特性包括:

  • 交互性强:用户可以提交表单、评论,参与投票等。
  • 内容更新即时:页面内容可根据数据库变化实时更新。
  • 个性化:根据用户行为或偏好展示定制化内容。
  • 技术复杂:需要服务器端脚本、数据库技术等支持。

                3.动态网页语言

动态网页的实现依赖于服务器端编程语言和数据库技术。常见的动态网页语言有:

  • PHP:开源服务器端脚本语言,广泛应用于网页开发,与MySQL数据库结合紧密,支持框架如Laravel、Symfony。
  • JavaScript(Node.js):原本用于客户端脚本,Node.js使其也能在服务器端运行,用于构建高性能、实时应用,常用框架Express、Koa。
  • Python:多用途编程语言,通过Django、Flask等框架可以快速开发复杂的Web应用,支持模型-视图-控制器(MVC)架构。
  • Ruby:Ruby on Rails(RoR)框架以其优雅的语法和“约定优于配置”的原则受到开发者欢迎,适合快速开发Web应用。
  • Java:企业级应用常用的强类型语言,Spring框架提供了强大的Web开发支持,适合构建大型分布式应用。
  • ASP.NET:微软开发的.NET框架的一部分,支持C#、VB.NET等多种语言,适用于Windows服务器环境。

这些语言通过与数据库(如MySQL、PostgreSQL、MongoDB等)交互,可以实现数据的存储、检索和更新,从而支撑起动态网页的功能需求。

二、HTTP协议

1:HTTP协议概述

HTTP(Hypertext Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。它是一个基于请求与响应模型的、无状态的应用层协议,设计目的是保证客户端与服务器之间的通信高效、可靠、灵活。

2:HTTP方法

HTTP定义了一系列方法(也称为动词或请求类型),用来表明请求的目的。常见的HTTP方法包括:

  • GET:请求获取指定资源的信息,是最常见的请求类型,用于获取网页、图片等。
  • POST:向指定资源提交数据,常用于提交表单数据,上传文件等。
  • PUT:替换指定资源的全部内容,若资源不存在,则根据服务器配置可能会创建新资源。
  • DELETE:删除指定资源。
  • HEAD:类似于GET请求,但服务器只返回响应头,不返回消息体,用于检查资源是否存在、获取资源元数据等。
  • OPTIONS:用于获取服务器支持的HTTP方法。
  • PATCH:部分更新指定资源,相比PUT,仅更新资源的部分属性。

3:HTTP状态码

HTTP状态码是服务器对客户端请求的响应状态的简短数字代码,分为五类:

  • 1xx(信息性状态码):表示接收的请求正在处理。
  • 2xx(成功状态码):表示请求已成功被服务器接收、理解,并接受。
    • 200 OK:请求成功。
  • 3xx(重定向状态码):需要客户端采取进一步的操作才能完成请求。
    • 301 Moved Permanently:永久重定向。
    • 302 Found:临时重定向。
  • 4xx(客户端错误状态码):请求包含语法错误或无法完成请求。
    • 400 Bad Request:请求无效或无法理解。
    • 401 Unauthorized:请求要求用户的身份认证。
    • 403 Forbidden:服务器理解请求客户端的请求,但是拒绝执行此请求。
    • 404 Not Found:请求的资源未找到。
  • 5xx(服务器错误状态码):服务器在处理请求的过程中发生了错误。
    • 500 Internal Server Error:服务器遇到了不知道如何处理的情况。
    • 502 Bad Gateway:作为网关或代理工作的服务器从上游服务器收到了无效的响应。
    • 503 Service Unavailable:服务器目前无法使用(由于超载或停机维护)。

4:HTTP请求流程分析

一个典型的HTTP请求流程如下:

  1. 客户端初始化请求:构建HTTP请求报文,包括请求行(方法、URL、协议版本)、请求头(如User-Agent、Accept等)和可能的请求体(如POST请求的数据)。
  2. 客户端发送请求:通过TCP套接字,将请求报文发送给服务器的指定端口(默认是80或443)。
  3. 服务器接收请求:服务器监听端口接收到请求,开始处理请求。
  4. 服务器处理请求:服务器解析请求报文,执行相应操作(如数据库查询、文件读取等),并准备响应报文。
  5. 服务器返回响应:服务器构建HTTP响应报文,包括状态行(协议版本、状态码、状态消息)、响应头(如Content-Type、Content-Length等)和响应体(如HTML页面、图片数据等)。
  6. 客户端接收响应:客户端接收到响应报文,根据响应内容进行处理,如渲染网页。
  7. 连接关闭或保持:根据HTTP版本和双方的约定,决定是否关闭连接。HTTP 1.1默认支持持久连接,即在同一个TCP连接上可以发送多个请求和接收多个响应,而HTTP/2和HTTP/3则进一步优化了连接复用和效率。

这一流程体现了HTTP协议在客户端与服务器之间传输数据的基本机制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!