• HTTP简述


    简述一次网络请求过程

    1. 域名解析

      通过URL查找服务器IP

      如访问百度,www.baidu.com,

      • www是服务器名
      • baidu可以理解为公司名或私人名
      • com是域名根服务器

      浏览器先访问本地文件Host文件,检查文件中是否有与域名匹配的IP地址,如果有直接访问IP对应的服务器;否则,向上层的DNS服务器询问;如果还没有,则继续向上层的DNS服务器询问,知道DNS根服务器。

    2. TCP三次握手

      建立一个TCP连接所需的过程

      请求连接、确认信息、握手结束

    3. 发送HTTP请求

      HTTP请求由三部分组成:请求行、请求头和数据体。

      • 请求行包含请求方法(如GET、POST),请求URI和HTTP版本。
      • 请求头包含User-Agent、Accept、Cookie等键值对信息。
      • 数据体则是请求的具体内容,通常是表单数据或文件。
    4. 服务器响应请求

      服务器解析完用户请求后,会返回一个HTTP响应。响应由状态行(如HTTP/1.1 200 OK)、响应头和响应正文组成。

      状态行指示请求的处理结果,响应头包含服务器信息、资源实体信息和可能的重定向信息,响应正文则是要发送给客户端的数据。

    5. 浏览器解析HTML

      浏览器解析服务器返回的HTML代码,并请求里面的CSS、JS、图片等资源。

    6. 页面渲染后呈现给用户

      从上到下,下载和渲染是同时进行的。

    URI和URL

    URI(Uniform Resource Identifier,统一资源标志符)标记一个网络资源,给资源命名。

    URL用地址标记一个网络资源,给资源定位。

    URI:

    • 访问资源的命名机制
    • 存放资源的主机名
    • 资源本身的名词,用路径表示,着重强调资源。

    URI的格式由协议名、访问权限部分(如用户名和密码)、主机地址、端口号、路径、查询字符串和片段标识符组成。例如,一个典型的URI格式可能是

    [协议名]://[用户名]:[密码]@[服务器地址]:[服务器端口号]/[路径]?[查询字符串]#[片段ID]

    URL:

    • 协议(服务方式)
    • 存有该资源的主机IP地址(有时包含端口号)
    • 主机资源的具体地址(绝对路径)

    URL的格式通常为协议://用户名:密码@域名:端口号/路径?查询字符串#片段

    网络请求方法

    网络请求方法,通常指的是HTTP协议中定义的几种请求方式,它们决定了客户端和服务器之间如何进行通信。主要的请求方法包括GET、POST、PUT、DELETE、PATCH、OPTIONS、TRACE等。每种方法有其特定的用途和行为特征,下面将逐一进行详细介绍。

    GET请求

    GET请求用于从服务器上请求指定的资源。它是最常见的一种请求方法,通过URL来指定要访问的资源。例如,当我们访问一个网页时,就是在发送一个GET请求。GET请求的特点是简洁明了,它不会引起服务器的任何状态变化,因此它被认为是幂等的。

    POST请求

    POST请求用于向服务器提交数据,并请求服务器在目标位置执行某种操作。POST请求通常用于表单提交或文件上传,数据会被包含在请求体中。POST请求可能导致服务器的资源发生变化,因此它不是幂等的。

    PUT请求

    PUT请求用于更新或创建服务器上的资源。如果指定的资源存在,那么它将被更新;如果不存在,将会创建一个新的资源。PUT请求要求请求体中包含要更新的数据,且数据格式必须与请求的媒体类型相匹配。

    DELETE请求

    DELETE请求用于删除服务器上的资源。当删除操作完成后,指定的资源将不再存在。DELETE请求的特点是它能够彻底移除资源,因此在执行前需要确认是否需要进行此项操作。

    PATCH请求

    PATCH请求用于部分更新资源。它允许你更新资源的一部分字段,而不是整个资源。PATCH请求通常用于那些需要局部更新的场景,比如更新用户的某些属性信息。

    OPTIONS请求

    OPTIONS请求用于询问服务器关于特定资源所支持的方法和选项。通过OPTIONS请求,客户端可以了解服务器对特定资源能够执行的请求类型,比如是否支持GET、POST等。

    TRACE请求

    TRACE请求用于追踪请求的传递路径。服务器在收到TRACE请求后会将请求的内容原样返回给客户端,这样客户端就能看到请求在传递过程中经过的各个节点。

    CONNECT请求

    CONNECT请求用于建立一个连接,通常用于代理服务器。它允许客户端指定代理服务器来连接至最终的服务器。

  • 相关阅读:
    如何发布自己的 npm 包
    无需公网IP,在家SSH远程连接公司内网服务器「cpolar内网穿透」
    绑定样式--class样式(字符串法、对象法、数组法)、style样式(直接绑定法、对象法、数组法)
    html5新增_canvas
    【通信系列 5 -- HTTPS 介绍】
    使用Spring Boot构建稳定可靠的分布式爬虫系统
    全网独我一份,SpringCloud Alibaba手打笔记
    leetcode 380. Insert Delete GetRandom O(1)(在O(1)时间添加,删除,取随机)
    虚拟机配置网络ip,主打一个详细
    Spring依赖注入
  • 原文地址:https://blog.csdn.net/weixin_72939806/article/details/138035830