HTTP 协议概述(上)| 学习笔记

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

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

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


HTTP协议概述(上)

 

概念:

HTTP(HyperText Transfer Protocol,超文本传输协议)是访问万维网使用的核心通信协议,也是今天所有 Web 应用程序使用的通信协议。

HTTP 使用一种基于消息的模型:客户端送出一条请求消息,而后由服务器返回一条响应消息。

图片3.png

由图可以看到 HTTP 客户端一般是指浏览器,发送 HTTP Request Message,Web 服务器进行响应,根据请求把消息返回浏览器。

超文本传输协议简化了很多版本,大部分是向下兼容的。HTTP 最开始是0.9的版本,现在已经过时,只接受 GET 请求,没有在通信协议中指定版本号,也不支持请求头。

由于版本不支持 POST 方法,客户无法向浏览器发送方法。1.0版本是第一个在通讯中指定版本号的,至今仍然在使用,特别是在代理服务器。当前主流服务器是1.1的版本,是持久连接,还能很好配合代理工作,支持以管道的方式同时发送多个请求,功能越来越强,降低了线路的负载,提高了传输速度。

HTTP 消息头:

HTTP 支持许多不同的消息头,其中一些专用于特殊用途。

常用消息头:

Connection 告诉双方是否关闭连接的参数|Content-Encoding 指定传输编码的参数|Content-Length 用于规定消息主体的字节长度|Content-Type 用于规定消息主体的内容的类型

|Transfer-Encoding 方便 HTTP 传输对消息主体使用的编码的一种定义。

请求消息头:

Accept 用于告诉服务器的客户端愿意接受哪些内容|Accept-Encoding|Authorization|Cookie 用于向服务器提交发生过的记录 Host 消息头出现在所指定的 URL 的主机名称|

If-Modified-Since|If-None-Match|Origin|Referer 用于指出请求的源的 URL 路径|User-Agent 指定提供给浏览器相关信息

响应消息头:

Access-Control-Allow-Origin|Cache-Control|Etaq|Expires|Location|Pragma|Server提供 Web 服务器相关软件的信息|Set-Cookie 消息头向浏览器发送 Cookie 浏览器会在请求中将 Cookie 返回给服务器是否设置

|WWW-Authenticate|X-Frame-Options

HTTP 请求:

所有 HTTP 消息(请求与响应)中都包含一个或几个单行显示的消息头(header),然后是一个强制空白行,最后是消息主体(可选),

例如:

 图片4.png

第一行:最开始是一个 GET 的请求,然后会有一个 URL 的路径,声明 HTTP 版本1.1

第二行:消息头的信息

第三行:空格,Cookie 以后其实还有一个空行,在 GET 请求中数据是没显示出来的

Referer 的请求源是从 https:

//mdsec.net/auth/488/Home.ashx 中请求过来的跳转到 uid=129的页面;接收的语言是 zh-cn 就是中文;

User-Agent 是 Mozilla 浏览器;Accept-Encoding 格式是 gzip 的格式还有 deflate 的格式;Host 是从 mdsec.net 来的;连接信息是要保持连接;Cookie 信息 Session是没有设置 Cookie 的。

HTTP 方法:

当渗透测试员攻击 Web 应用程序时,几乎肯定会遇到最常用的方法:GET 和 POST。

GET 方法的作用在于获取资源。

POST 方法的主要作用是执行操作。

HTTP1.0定义了 GET、POST、HIDE 三种方法,1.1的版本增加到了5种方法,HTTP 方法可以自行搜索进行学习。

HTTP 响应:

以下是一个典型的 HTTP 响应:

图片5.png

给客户端浏览器返回浏览器的版本,返回相应的码200,正常执行,日期;Sever 端是IS 的6.0的版本;

Set-Cookie 让浏览器将信息记录;请求的类型是 HTML 的类型;使用的是 UTF-8的语言;长度返回了1067个字节。

相关文章
|
21天前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
7天前
|
安全 网络协议 算法
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
49 4
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
|
8天前
|
存储 网络安全 对象存储
缺乏中间证书导致通过HTTPS协议访问OSS异常
【10月更文挑战第4天】缺乏中间证书导致通过HTTPS协议访问OSS异常
25 4
|
6天前
|
缓存 网络协议 前端开发
Web 性能优化|了解 HTTP 协议后才能理解的预加载
本文旨在探讨和分享多种预加载技术及其在提升网站性能、优化用户体验方面的应用。
|
10天前
|
JavaScript 安全 Java
谈谈UDP、HTTP、SSL、TLS协议在java中的实际应用
下面我将详细介绍UDP、HTTP、SSL、TLS协议及其工作原理,并提供Java代码示例(由于Deno是一个基于Node.js的运行时,Java代码无法直接在Deno中运行,但可以通过理解Java示例来类比Deno中的实现)。
36 1
|
18天前
|
前端开发 JavaScript
HTTP学习笔记
HTTP学习笔记
27 1
|
19天前
|
安全 网络协议 网络安全
在实现HTTPS时,有哪些常见的安全协议
在实现HTTPS时,有哪些常见的安全协议
|
20天前
|
前端开发 JavaScript 安全
深入解析 http 协议
HTTP(超文本传输协议)不仅用于传输文本,还支持图片、音频和视频等多种类型的数据。当前广泛使用的版本为 HTTP/1.1。HTTPS 可视为 HTTP 的安全增强版,主要区别在于添加了加密层。HTTP 请求和响应均遵循固定格式,包括请求行/状态行、请求/响应头、空行及消息主体。URL(统一资源定位符)用于标识网络上的资源,其格式包含协议、域名、路径等信息。此外,HTTP 报头提供了附加信息,帮助客户端和服务端更好地处理请求与响应。状态码则用于指示请求结果,如 200 表示成功,404 表示未找到,500 表示服务器内部错误等。
17 0
深入解析 http 协议
|
27天前
|
数据采集 JSON API
🎓Python网络请求新手指南:requests库带你轻松玩转HTTP协议
本文介绍Python网络编程中不可或缺的HTTP协议基础,并以requests库为例,详细讲解如何执行GET与POST请求、处理响应及自定义请求头等操作。通过简洁易懂的代码示例,帮助初学者快速掌握网络爬虫与API开发所需的关键技能。无论是安装配置还是会话管理,requests库均提供了强大而直观的接口,助力读者轻松应对各类网络编程任务。
86 3
|
28天前
|
机器学习/深度学习 JSON API
HTTP协议实战演练场:Python requests库助你成为网络数据抓取大师
在数据驱动的时代,网络数据抓取对于数据分析、机器学习等至关重要。HTTP协议作为互联网通信的基石,其重要性不言而喻。Python的`requests`库凭借简洁的API和强大的功能,成为网络数据抓取的利器。本文将通过实战演练展示如何使用`requests`库进行数据抓取,包括发送GET/POST请求、处理JSON响应及添加自定义请求头等。首先,请确保已安装`requests`库,可通过`pip install requests`进行安装。接下来,我们将逐一介绍如何利用`requests`库探索网络世界,助你成为数据抓取大师。在实践过程中,务必遵守相关法律法规和网站使用条款,做到技术与道德并重。
35 2

热门文章

最新文章