【渗透课程】第二篇上-http请求协议的简单描述
HTTP协议剖析
什么是HTTP协议?如何发起请求?我认为这样讲大家能够理解:
浏览器访问网站也是http请求的一个过程。当你打开浏览器,访问一个URL
(协议://服务器IP:端口/路径/文件)的时候,相当于向服务器发送了一个http请求,然后服务器会根据你的请求,向你响应一个HTML数据。这个客户端与服务端交互的过程叫做http协议。那么这个协议的过程是什么样子的呢?(简版)
1:客户端向服务端发送请求
2:服务端向客户端响应html数据
3:连接自动切断
PS:这个请求只能由客户端发起,而服务端不能主动向客户端发起!
然而我们通过浏览器发送的http请求,在服务器响应后,客户端接受到的数据都是被浏览器渲染过而显示的画面。为了能更清晰的剖析客户端与服务端之间的协议交互,我们来一次脱离浏览器的http请求。这就要借用到我们的工具:
curl.exe
一般来说Linux自带curl.exe 似乎Windows没有自带curl.exe 没关系,Windows的用户也可以通过下载使用。
脱离浏览器发起http请求
我们可以通过输入命令:
cURL http://www.baidu.com/
来向百度发起http请求,看看返回的响应结果吧!

看,返回的是一个html文件数据!我们还可以在原命令的基础上后面加个参数 -I 来查看http服务器返回的响应头。
好了我们基本了解了http请求的基本逻辑,就通过下面这篇文章来对http进行深度剖析吧!
【渗透课程】第二篇上-http请求协议的简单描述的更多相关文章
- TCP/IP 协议标准简单描述
		
TCP/IP 协议标准简单描述 说明 分为三部分:中文名称.缩写.说明. 应用层 DNS 域名服务 (DNS) 功能: 将域名转化为IP地址 BOOTP 引导程序协议 (BOOTP) 功能: 允许无盘 ...
 - 第二篇--上传git 代码
		
准备工作: 首先,注册一个GitHub账号. 接着,新建一个仓库. 最后,下载Git 上传代码步骤: 第一步,新建一个本地文件夹作为本地仓库,进入该文件夹. 右击选择Git Bash Here ,输入 ...
 - Java 学习 第二篇;面向对象 定义类的简单语法:
		
1:基本知识 [public / protected / private] class 类名 { 零个到多个构造器定义; 零个到多个属性; 零个到多个方法; } 其中类中各个成员之间的顺序没有关系,且 ...
 - 第二篇MTV模型、基本命令、简单配置
		
MTV模型.基本命令.简单配置 阅读目录(Content) MTV模型 基本命令 简单配置 MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Tem ...
 - 【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析
		
[渗透课程]第二篇下-HTTP协议的请求与响应深度剖析 HTTP1.1目前支持以下7种请求方法: 常见的MIME类型如下: 第一个数字有五种可能的取值: 目录 什么是请求方法?什么是请求头? HTTP ...
 - 【渗透课程】特别篇-主流网站程序Oday大全以及拿shell思路
		
版权和内容说明: 这篇文章不是本站编写,是从网络上摘抄的,但是经过了本站的改写优化,并将内容,格式规范化. 本篇说明:这篇文章结合了前辈们前几年一路挖掘出来的主流程序漏洞以及思路, 小编写在前面是想让 ...
 - Netty实现高性能IOT服务器(Groza)之手撕MQTT协议篇上
		
前言 诞生及优势 MQTT由Andy Stanford-Clark(IBM)和Arlen Nipper(Eurotech,现为Cirrus Link)于1999年开发,用于监测穿越沙漠的石油管道.目标 ...
 - 【渗透课程】第四篇-Web安全之信息探测
		
Web之信息探测,从这篇开始就正式进入了Web渗透实战过程了,嗯,前面都是讲基础,下面我们来讲Web中的信息探测. 信息探测,主要的目的 收集目标服务器系统信息(IP,服务器所用系统等) 收集目标网站 ...
 - Django学习笔记第二篇--关于请求获取
		
#细节都在代码段里面讲解 零.绪论: HTTP协议是一种请求响应的协议,一次请求一次响应.所以这部分的讲解将分为三个部分:请求获取,分析处理.返回响应. 一.获取请求数据: 1.POST和GET类型 ...
 
随机推荐
- 如何在web项目中添加javamelody monitoring 监控。
			
1.在工程的maven pom中添加依赖javamelody-core <!-- monitoring监控 --><!-- https://mvnrepository.com/art ...
 - xshell常用命令
			
常用的命令: suse linux 常用命令 (1) 命令ls--列出文件 ls 显示当前目录文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的"隐藏"文件 ...
 - [C++ Calculator 项目] 文件读入与可视化实现
			
Calculator V1.1 注:这是C++计算器项目第三.四部分-文件读写与可视化 [基于原代码重构而得] 源文件已上传至Github 文件读写 可视化 文件读写: Ⅰ.在原基础代码上增加了-f参 ...
 - TypeScript--变量及类型的那些事儿
			
变量(类型)声明 格式:关键字 变量名称:类型=值 (强类型) / 关键字 变量名称=值 例子: Array数组声明 Tuple元组类型 声明一个包含多类型的数组: Enum枚举类 ...
 - unrecognized font family "iconfont2"
			
起因:使用React Native开发App,需要使用自定义字体iconfont2.ttf,要在xCode中引入该字体 步骤:将字体文件拷贝到项目工程中,在Info.plist文件中添加Fonts p ...
 - android studio生成junitLibs
			
apply plugin: 'com.android.application'android { compileSdkVersion 24 buildToolsVersion "25.0.0 ...
 - global,$GLOBALS[' '] 全局,   浮动float跟margin的注意事项
			
$a; global只能声明变量为全局,不能赋值,否则报错未定义:global $a; 相对于$GLOBALS['a'],写法是这样的,所有定义过的变量都存在这里: //浮动float跟margin的 ...
 - 初学 Python(十四)——生成器
			
初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...
 - Java工程师书单(初级、中级、高级)
			
简介 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序员经常会问到的问题 ...
 - 【EntityFramework 6.1.3】个人理解与问题记录(2)
			
前言 才看完一季动漫,完结撒花,末将于禁,原为曹家世代赴汤蹈火!想必看过的都会知道这个,等一下要不吐槽一下翻拍的真人版,○( ^皿^)っHiahia-,好了快醒醒改办正事儿了,好的,我们接着上一篇文章 ...