news 2026/2/6 9:57:19

Http概述

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Http概述

文章目录

  • Web基础-HTTP
      • 1、什么是项目
      • 2、什么是架构?
      • 3、架构所需关键词
      • 4、什么是集群?
      • 5、什么是负载均衡?
      • 6、http概述
        • 6.1、Web状态访问码
        • 6.2、Web的结构组成
        • 6.3、有哪些Web资源?
        • 6.4、HTTP的工作原理
        • 6.5、HTTP请求响应
        • 6.6、HTTP相关术语
        • 6.7、HTTP协议的原理
        • 用户访问网站整体的流程

Web基础-HTTP

1、什么是项目

项目是人们通过努力,运用新的方法,将人力的、材料的和财务的资源组织起来,在给定的费用和时间约束规范内,具有明确目标的一次性工作任务,以期达到由数量和质量指标所限定的目标,类似于手机的app,每一个app都可以算做一个项目

2、什么是架构?

  1. 根据要解决的问题,对目标系统的边界进行界定。
  2. 并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间
  3. 并对这些切分出来的部分,设立沟通机制
  4. 使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作

3、架构所需关键词

- 可靠性(Reliable) - 安全性(Secure) - 可扩展性(Scalable) - 可定制化(Customizable) - 可伸缩 (Extensible) - 可维护性(Maintainable) - 客户体验(Customer Experience) - 市场时机(Time to Market)

4、什么是集群?

一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。

5、什么是负载均衡?

将用户的请求,分摊到多个操作单元上执行,保证服务器的稳定性。

6、http概述

http:超文本传输协议

URL:统一资源定位【https://www.baidu.com:80/文件路径】

http的访问流程

web资源:当前主流的所有资源都可以识别

6.1、Web状态访问码
200直接成功301永久重定向(redirect)302临时重定向(redirect)304浏览器缓存307内部重定向(redirect)400客户端错误401认证失败403请求不到首页,权限被拒绝404资源找不到413访问的文件太大,不支持500服务器内部错误,程序代码错误502找不到后端的资源 bad gateway503服务器过载504请求超时
6.2、Web的结构组成
C/S:客户端和服务端 B/S:浏览器和服务端 - 代理 - 位于客户端和服务器之间的HTTP中间实体 - 缓存 - HTTP的仓库,使常用页面的副本可以保存在离客户端更近的地方 - 网关 - 连接其他应用程序的特殊Web服务器 - 隧道 - 对HTTP通信报文进行盲转发的特殊代理 - Agent代理 - 发起自动HTTP请求的半智能Web客户端
6.3、有哪些Web资源?
text/html,html格式的文本文档 text/plain,普通的ASCII文本文档 image/jpeg,JPEG格式图片 image/gif,GIF格式图片 video/quicktime,Apple的QuickTime电影 application/vnd.ms-powerpoint,微软的PowerPoint演示文件
6.4、HTTP的工作原理
1.用户输入域名->浏览器跳转->DNS解析( 递归查询 | 迭代查询 ) 客户端向服务端发起查询->递归查询 服务端向服务端发起查询->迭代查询 2.由浏览器向服务端发起TCP连接(三次握手) 客户端 -->请求包连接-syn=1 seq=x 服务端 服务端 -->向应客户端syn=1 ack=x+1 seq=y 客户端 客户端 -->建立连接 ack=y+1 seq=x+1 服务端 3.客户端发起HTTP请求: 1.请求的方法是什么: Get 获取 2.请求的Host主机是: www.aliyun.com 3.请求的资源是什么: /index.html 4.请求的端口是什么: 默认HTTP是80 HTTPs 443 5.请求携带的参数是: 属性(请求的类型、压缩、认证、等等) 6.请求最后的空行 4.服务端响应的内容是 1.服务端响应使用的WEB服务软件 2.服务端响应请求文件的类型 3.服务端响应请求的文件是否进行压缩 4.服务端响应请求的主机是否进行长连接 5.客户端向服务端发起TCP断开(四次挥手) 客户端 --> 断开请求 fin=1 seq=x --> 服务端 服务端 --> 响应断开 ack=x+1 seq=y --> 客户端 服务端 --> 断开连接 fin=1 ack=x+1 seq=z --> 客户端 客户端 --> 确认断开 ack=z+1 seq=n --> 服务端
6.5、HTTP请求响应

1、请求报文的方法

get# 获得请求文件信息的数据内容(下载)post# 用户提交数据至服务器端存储(上传,增资源)put# 用户提交数据至服务器端存储(上传,改资源)Request URL:HTTP://10.0.0.7/index.html# 请求的URLRequest Method:GET# 请求的方法Status Code:200 OK# 当前的状态Remote Address:10.0.0.7:80# 远程的主机

2、用户访问网站携带的参数,以及服务端返回的参数

General:基本信息

Response Headers:响应的头部信息

Request Headers:请求的头部信息

基本信息:General

#请求的urlRequest URL:#请求方式Request Method:#状态码Status Code#远程主机IPRemote Address#控制请求头内容Referrer Policy

请求头部信息

#请求资源类型accept:#压缩accept-encoding:#语言accept-language: zh-CN,zh;q=0.9#缓存控制(没有做缓存)cache-control:#保持连接:长连接Connetection:keep-alive HTTP/1.1版本#长连接,一次TCP的连接可以发起多次HTTP请求HTTP/1.0版本#短连接,一次TCP的连接只能发起一次HTTP请求还有HTTP/2.0和HTTP/3.0#请求的域名Host:#登录信息cookie:#谷歌自带的(不属于请求头的内容)upgrade-insecure-requests:1#客户端(用户设备)user-agent:

响应报文包头

#缓存控制cache-control: no-cache, must-revalidate, max-age=0#压缩content-encoding:gzip#内容长度content-length:9410#返回内容类型及字符集content-type: text/html;charset=UTF-8#返回服务器时间date: Wed,14Aug201923:16:43 GMT#加密ideagleid: 2dfd119815648138332064260e#失效时间expires: Thu,19Nov198108:52:00 GMT#软链接link:<HTTPs://www.tfantastic.com/wp-json/>;rel="HTTPs://api.w.org/"#参数:没有缓存pragma: no-cache#使用的web软件server: Nginx#状态码status:200#指定特定站点允许访问timing-allow-origin: *#渲染vary: Accept-Encoding#经过各级缓存via: cache14.l2cm12[99,200-0,M], cache1.l2cm12[101,0], cache13.cn1300[122,200-0,M], cache4.cn1300[123,0]------------- 以下都是CDN厂商带的 ----------------#CDN缓存是否命中x-cache: MISS TCP_MISS dirn:-2:-2#缓存版本号x-powered-by: PHP/7.1.22#缓存时间x-swift-cachetime:0#保存时间x-swift-savetime: Sat, 03 Aug201906:30:33 GMT
6.6、HTTP相关术语

PV : 页面独立浏览量

UV : 独立设备

IP : 独立IP

假设公司有一座大厦,大厦有100人,每个人有一台电脑和一部手机,上网都是通过nat转换出口,每个 人点击网站2次, 请问对应的pv,uv,ip分别是多少?

那么上面的题: PV: 100_2_2 = 400

UV: 100*2 = 200 IP: 1

日PV千万量级并不大

6.7、HTTP协议的原理
1.用户输入域名->浏览器跳转->DNS解析(递归查询|迭代查询)客户端向服务端发起查询->递归查询 服务端向服务端发起查询->迭代查询2.由浏览器向服务端发起TCP连接(三次握手) 客户端 -->请求包连接-syn=1seq=x 服务端 服务端 -->向应客户端syn=1ack=x+1seq=y 客户端 客户端 -->建立连接ack=y+1seq=x+1 服务端3.客户端发起HTTP请求:1.请求的方法是什么: Get 获取2.请求的Host主机是: www.aliyun.com3.请求的资源是什么: /index.html4.请求的端口是什么: 默认HTTP是80 HTTPs4435.请求携带的参数是: 属性(请求的类型、压缩、认证、等等)6.请求最后的空行4.服务端响应的内容是1.服务端响应使用的WEB服务软件2.服务端响应请求文件的类型3.服务端响应请求的文件是否进行压缩4.服务端响应请求的主机是否进行长连接5.客户端向服务端发起TCP断开(四次挥手) 客户端 -->断开请求fin=1seq=x -->服务端 服务端 -->响应断开ack=x+1seq=y -->客户端 服务端 -->断开连接fin=1ack=x+1seq=z -->客户端 客户端 -->确认断开ack=z+1seq=n -->服务端
用户访问网站整体的流程

1.客户端发起HTTP请求,请求会先抵达前端的防火墙

2.防火墙识别用户身份,通过内部交换机将正常的请求通过tcp连接负载均衡,传递用户的HTTP请求

3.负载接收到请求,会根据请求的内容进行下发任务,通过tcp连接web服务器,发送用户的HTTP请求

4.web接收到用户的HTTP请求后,会根据用户请求的内容进行解析,解析分为如下:

静态请求:由web服务器向nfs建立tcp连接,获取对应的图片,最后返回给负衡(负载均衡->防火墙->

用户)

动态请求:有web向后端的动态程序建立TCP连接,将用户的动态HTTP请求传递态程序->由动态程序进行解析

5.动态程序在解析的过程中,如果碰到查询数据库的请求,则优先和缓存建立tcp接,然后缓存服务发起HTTP 的查询

6.如果缓存没有对应的数据,动态程序再次向数据库建立tcp的连接,然后发起查询。

7.由数据库返回->动态程序->缓存->web服务->负载均衡->防火墙->用户。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/6 8:32:09

计数dp详解

计数动态规划详解 计数动态规划&#xff08;Counting Dynamic Programming&#xff09;&#xff0c;简称计数DP&#xff0c;是动态规划&#xff08;DP&#xff09;中专门用于解决计数问题的一类方法。其核心目标是通过定义合适的状态和状态转移方程&#xff0c;高效地计算出满足…

作者头像 李华
网站建设 2026/2/2 23:29:28

Zotero插件市场:一站式插件管理终极指南

Zotero插件市场&#xff1a;一站式插件管理终极指南 【免费下载链接】zotero-addons Zotero add-on to list and install add-ons in Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons 核心价值&#xff1a;3步实现Zotero插件自动管理&#xff0c;让学…

作者头像 李华
网站建设 2026/2/5 22:30:55

MTKClient终极指南:3步解锁联发科设备的完整调试能力

MTKClient终极指南&#xff1a;3步解锁联发科设备的完整调试能力 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient 对于需要处理联发科设备的用户来说&#xff0c;MTKClient无疑是一款革命性…

作者头像 李华
网站建设 2026/2/6 9:12:49

Lumafly模组管理器:空洞骑士玩家的终极免费解决方案

Lumafly模组管理器&#xff1a;空洞骑士玩家的终极免费解决方案 【免费下载链接】Lumafly A cross platform mod manager for Hollow Knight written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/lu/Lumafly 在《空洞骑士》模组社区中&#xff0c;Lumafly作…

作者头像 李华
网站建设 2026/2/5 17:58:49

一篇文章了解 JavaScript 开发中函数与变量的优先级

函数与变量的优先级&#xff1a;搞懂这3个核心场景&#xff0c;再也不踩坑 在 JavaScript 开发中&#xff0c;我们经常会遇到这样的困惑&#xff1a;当函数和变量同名时&#xff0c;到底谁会被优先访问&#xff1f;为什么有时候打印的是函数&#xff0c;有时候却是变量值&#…

作者头像 李华
网站建设 2026/2/5 17:15:36

TensorFlow-GPU安装全指南:版本匹配与实操步骤

TensorFlow-GPU 安装实战&#xff1a;从驱动到成功调用 GPU 的完整路径 在深度学习的世界里&#xff0c;没有比“明明有显卡却用不了 GPU”更让人抓狂的事了。你跑 tf.config.list_physical_devices(GPU)&#xff0c;结果返回一个空列表&#xff1b;你查了教程、重装了十遍&am…

作者头像 李华