HTTP 协议基础 | 学习笔记

简介: 快速学习 HTTP 协议基础,介绍了 HTTP 协议基础系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【云安全基础课- HTTP 协议基础HTTP 协议基础】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/496/detail/6649


HTTP 协议基础


内容介绍:

一、Web 请求流程概述

 

一、Web 请求流程概述

1. 输入访问 URL http://xxx

首先在浏览器中输入 URL 网址,一个域名的地址,浏览器根据输入的地址来进行 IP 地址的解析。

2. DNS 域名解析

浏览器会在浏览器缓存中进行 DNS 解析;若缓存中无解析,浏览器会在系统层进行解析,进行系统调用,这样浏览器就可以获得记录;若系统中也无记录,就会向路由器发送查询的请求,一般有 DNS 缓存;若路由器也无信息,会继续向 ISP 的 DNS 缓存进行请求查询;若还找不到,会找 DNS 查询服务器向 DNS 的根域进行查询。

在域名解析中系统进行层层缓存是为了加速 DNS 解析的速度。

例:在浏览器中输入 www.123.com.cn

第一种:

直接查询 DNS 查询服务器,若没有缓存,从后往前查从.cn 开始查,到管理根域名的DNS 服务器查询.cn 的 DNS 服务器的根告诉查询服务器;

第二步:查询服务器请求.com.cn 的查询服务器,然后.cn 的返回.com.cn 的 DNS 查询服务器;

第三步:根据.com.cn,查询123.com.cn,在返回

www.123.com.cn的域名。

第二种:

DNS 查询服务器请求管理根的 DNS 服务器把 cn 的域名的服务器返回,由 cn 的服务器进行其他服务器查询,逐级返回,最后返回给 cn 的服务器,由 cn 的服务器将正确的www.123.返回给 DNS 查询服务器,再返回给客户机的浏览器。

3. 建立 TCP 连接

浏览器在查询完 DNS 得到服务器的 IP 地址会与服务器的 Web 建立 TCP 连接

4. 发送 HTTP Resquest 请求(HTTP 请求有:请求报文和响应报文)

把相应的 HTTP 请求发送给 Web 服务器,请求报文按照 HTTP 请求的标准模式进行发送,有请求行请求头部、空格及数据组成。

5. Web 服务器:反向代理

进行永久的重进象,服务器会给浏览器一个301的重进象,将 www 的地址补齐,一般在 HTTP 服务器都会进行301的重进象,为了提高搜索引擎的搜索排名。

6. 应用服务器:处理请求

根据 URL 的地址及服务器的地址进行请求处理,将相应的文件返回。

7. 关闭 TCP 连接:请求响应完成

在建立完连接之后会关闭 TCP 连接,关闭响应,这时 connection 的连接状态是 close 就会被结束。

8. 用户浏览器:渲染响应页面

用户浏览器会根据服务端的返回,将 HTML 进行渲染,将 HTML 转换成肉眼可见的。

实例:B/S 网络框架和请求流程概述:

图片6.png

用户首先访问服务端的系统输入域名,查询 DNS 服务器,浏览器请求 DNS 将域名解析为对应的 IP 地址,IP 地址在互联网找到对用服务器,向服务器发送 get 的请求,服务器返回默认的数字给用户。

服务器后端可能有多台服务器:

分布式缓存系统;文件系统;数据库系统。前端可能还有负载均衡的设备来平均用户请求。

请求数据可能存储在静态文件或者数据库中,这些都需要服务端进行处理,之后把数据返回浏览器,浏览器对数据进行解析判断动态或静态,若数据中还有静态资源,

例如:CSS、JS、图片时,连接会发起 HTTP 请求,可能将静态资源放在 CDN 上。

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
24天前
|
网络协议 Linux iOS开发
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
53 1
|
1月前
|
网络协议 Linux
HTTP协议基本原理简介(二)
HTTP协议基本原理简介(二)
23 1
|
1月前
|
前端开发
webpack如何设置devServer启动项目为https协议
webpack如何设置devServer启动项目为https协议
141 0
|
1月前
|
缓存 前端开发
HTTP协议基本原理简介(三)
HTTP协议基本原理简介(三)
15 1
|
8天前
|
缓存 网络协议
【计算机协议】第一章——HTTP协议详解
【计算机协议】第一章——HTTP协议详解
|
9天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
11天前
|
缓存 安全 网络协议
Http协议是什么
【4月更文挑战第12天】HTTP是用于从WWW服务器传输超文本到浏览器的协议,基于TCP/IP,特点包括无连接、无状态、面向对象、无阻塞和可缓存。它的工作原理是客户端发送请求,服务器处理后返回响应。自1989年创建以来,HTTP已发展支持多媒体内容传输,并通过HTTPS提供安全保护。学习更多可参考计算机网络技术文献。
18 6
|
14天前
|
存储 JSON 前端开发
网络原理(4)HTTP协议(下)
网络原理(4)HTTP协议
25 0
|
24天前
|
XML JSON JavaScript
推荐一个比较好用的c++版本http协议库-cpp-httplib
推荐一个比较好用的c++版本http协议库-cpp-httplib
38 1
|
1月前
|
运维 监控 算法
slb监听协议http
SLB的HTTP监听器用于处理HTTP请求,配置时选择协议类型为HTTP和前端端口(如80)。SLB根据负载算法将请求转发至健康后端服务器,并支持会话保持。通过`X-Forwarded-For`和`X-Forwarded-Proto`头处理请求信息。由于不涉及SSL/TLS,数据传输不安全,推荐升级至HTTPS以加密通信。SLB提供性能监控和故障排查工具,帮助运维管理。
26 5