首页 > 其他分享 >Web请求过程

Web请求过程

时间:2024-07-03 23:28:15浏览次数:22  
标签:Web 缓存 HTTP 请求 字段 DNS POST 过程

        重点: 需要理解从用户在浏览器点击一条链接开始,到我们的服务器返回结果给浏览器,中间发生了哪些过程,需要哪些技术.


概述

        互联网的网络架构已从传统的C/S架构转变为了B/S架构.

        B/S架构的优点:

  • 客户端: 使用统一的浏览器(Browser),使得用户可以很便捷的使用互联网服务.
  • 服务端:  (Server)基于统一的HTTP,使得开发者可以采用相对规范的开发模式,且可以直接使用基于HTTP的服务器,无需单独开发.

        B/S架构设计需要满足:

  • 海量用户的访问请求
  • 保持用户请求的快速响应

        B/S架构图:

HTTP解析

HTTP概念

        HTTP 是超文本传输协议,也就是HyperText Transfer Protocol。

常见的HTTP请求头与响应头:

  • Host: 当客户端发送请求时,用来指定服务器的域名.

  • Content-Length: HTTP 协议通过设置回车符、换行符作为 HTTP header 的边界,通过 Content-Length 字段作为 HTTP body 的边界.

常见的HTTP状态码:

        对调试发现错误很有帮助.

GET与POST

GET请求

  • GET 的语义是请求获取指定的资源。
  • GET请求的请求参数通常写在URL中。
  • GET 方法是安全、幂等、可被缓存的。

POST请求

  • POST 的语义是根据请求负荷(报文主体)对指定的资源做出处理。
  • POST 请求的请求参数一般是写在报文 body 中,body 中的数据可以是任意格式的数据,而且浏览器不会对 body 大小做限制。
  • POST 不安全,不幂等,(大部分实现)不可缓存。

HTTP缓存机制

强制缓存

        强制缓存是利用下面这两个 HTTP 响应头部字段实现的,它们都用来表示资源在客户端缓存的有效期:

  • Cache-Control: 记录相对时间
  • Expires: 记录绝对时间
  • 如果 HTTP 响应头部同时有 Cache-Control 和 Expires 字段的话,Cache-Control 的优先级高于 Expires 。

协商缓存

        协商缓存就是与服务端协商之后,通过协商结果来判断是否使用本地缓存, 协商缓存可以基于两种头部来实现。

  • Last-Modified: 请求头部中的 If-Modified-Since 字段与响应头部中的 Last-Modified 字段
  • ETag: 请求头部中的 If-None-Match 字段与响应头部中的 ETag 字段

两种缓存的工作流程

        协商缓存的两个字段都需要配合强制缓存中 Cache-Control 字段来使用,只有在未能命中强制缓存的时候,才能发起带有协商缓存字段的请求。

DNS域名解析

域名的层级关系

        DNS 中的域名都是用.来分隔的,比如 www.baidu.com.,这里的句点代表了不同层次之间的界限

        在域名中,越靠右的位置表示其层级越高

        所以域名的层级关系类似一个树状结构:

  • 根 DNS 服务器(.)
  • 顶级域 DNS 服务器(.com)
  • 权威 DNS 服务器(server.com)

域名解析过程

标签:Web,缓存,HTTP,请求,字段,DNS,POST,过程
From: https://blog.csdn.net/m0_61702109/article/details/140162346

相关文章

  • Web基础知识扫盲
    1、中间件定义:中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。常见的中间件:IIS、Apache、Nginx、Tomcat2、NAT网络地址转换这里只介绍动态转换一种动态转换:是指将内部......
  • IIS(Internet Information Services)是Windows操作系统中的一种Web服务器软件。以下是一
    IIS(InternetInformationServices)是Windows操作系统中的一种Web服务器软件。以下是一些常见的与IIS相关的命令和工具:IISRESET:作用:重启IIS服务。语法:iisreset[/noforce][/restart][/stop][/start][/status][/reboot][/help]APPCMD:作用:用于配置IIS7.x及以上版......
  • quartz调度框架和gbase8s适配过程中的四个报错
    1.报错Causedby:java,sql.SOLExceptionCreatebreakpoint.:发生语法错误。程序与数据库通过jdbc连接时,为了保持连接,会向数据库发送sql语句验证连接有效--如mysql的其他数据库connection-test-query:"select1;"--gbase8s数据库需要修改connection-test-query:"sel......
  • uniapp和flask实现跨域请求
      新书上架~......
  • 1s内控制向某个请求请求的次数
    背景有的时候后端提供的接口对相同的IP进行限制,在某个时间内不能发送超过X条的请求,一旦超过指定的请求数会导致后续请求接口会出现异常。效果需求比如:在1s内最多同时发送2个请求,多出来的请求在后续的1s或者后续的Ns中发起代码<template><divclass="app"><el-divid......
  • 什么是 HTTP Range请求(范围请求)
    HTTPRange请求,也称为范围请求,是一种HTTP协议的功能,它允许客户端请求服务器发送一个资源的一部分,而不是整个资源。这种请求通常用于处理大文件的下载或流媒体服务,尤其是在网络不稳定或需要断点续传的场景中非常有用。范围请求的基本语法如下:Range:bytes=<start_byte>-<end_b......
  • csrf跨站请求,钓鱼网站实现示例,CSRF校验,CSRF相关装饰器,Auth模块,扩展Auth表
    ⅠDjango框架之csrf跨站请求【一】跨站请求伪造介绍【1】引入CSRF(Cross-SiteRequestForgery)跨站请求伪造是一种常见的网络攻击方式。攻击者通过诱导受害者访问恶意网站或点击恶意链接将恶意请求发送到目标网站上利用受害者在目标网站中已登录的身份来执行某些操作从而......
  • Web安全基础学习:Python反序列化漏洞之pickle反序列化
    理论基础序列化与反序列化序列化和反序列化是指用于将对象或数据结构转换为字节流的过程,以便在不同系统之间进行传输或存储,并在需要时重新构造。序列化是指将对象或数据结构转换为字节流的过程。在序列化过程中,对象的状态和数据被转换为一系列字节,这些字节可以按照一定......
  • 线上的一次fullgc排查过程
    线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力。同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验。 过去半年时间里,我们的广告系统出现了多次和GC相关的线上问题,有FullGC过于频繁的,有YoungGC耗时过长的,这些问......
  • 【JavaScript脚本宇宙】高效Web开发利器:全面解析六大HTML解析器与DOM库
    精益求精:揭秘六个改变Web开发的HTML解析与DOM操作工具前言在现代Web开发中,HTML解析器和DOM操作库是不可或缺的工具。无论是爬取数据、处理复杂的HTML文档,还是模拟浏览器环境,这些工具都扮演着关键角色。本文将深入探讨六个广泛使用的HTML解析器和DOM操作库,它们分别是:htmlpa......