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请求用于建立一个连接,通常用于代理服务器。它允许客户端指定代理服务器来连接至最终的服务器。

相关推荐
搬码临时工3 分钟前
如何把本地服务器变成公网服务器?内网ip网址转换到外网连接访问
运维·服务器·网络·tcp/ip·智能路由器·远程工作·访问公司内网
zzc92110 分钟前
MATLAB仿真生成无线通信网络拓扑推理数据集
开发语言·网络·数据库·人工智能·python·深度学习·matlab
栗子叶1 小时前
两种Https正向代理的实现原理
网络协议·http·https·正向代理
jingyucsdn2 小时前
网页端 VUE+C#/FastAPI获取客户端IP和hostname
网络协议·tcp/ip·fastapi
朱包林4 小时前
day27-shell编程(自动化)
linux·运维·服务器·网络·shell脚本
SZ1701102314 小时前
IP协议 标识字段 同一个源IP、目的IP和协议号内唯一
网络·网络协议·tcp/ip
狐576 小时前
2025-06-02-IP 地址规划及案例分析
网络·网络协议·tcp/ip
黎茗Dawn6 小时前
5.子网划分及分片相关计算
网络·智能路由器
恰薯条的屑海鸥7 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十四期-XXE模块)
网络·学习·安全·web安全·渗透测试
科技小E7 小时前
口罩佩戴检测算法AI智能分析网关V4工厂/工业等多场景守护公共卫生安全
网络·人工智能