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

相关推荐
Ciderw25 分钟前
块存储、文件存储和对象存储详细介绍
网络·数据库·nvme·对象存储·存储·块存储·文件存储
石牌桥网管27 分钟前
OpenSSL 生成根证书、中间证书和网站证书
网络协议·https·openssl
Tony聊跨境1 小时前
独立站SEO类型及优化:来检查这些方面你有没有落下
网络·人工智能·tcp/ip·ip
2403_875736872 小时前
道品科技智慧农业中的自动气象检测站
网络·人工智能·智慧城市
Tassel_YUE4 小时前
网络自动化04:python实现ACL匹配信息(主机与主机信息)
网络·python·自动化
Diamond技术流4 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
Spring_java_gg4 小时前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
方方怪5 小时前
与IP网络规划相关的知识点
服务器·网络·tcp/ip
weixin_442643426 小时前
推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案
服务器·网络·安全·filelink数据摆渡系统
阑梦清川7 小时前
JavaEE初阶---网络原理(五)---HTTP协议
网络·http·java-ee