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请求协议的简单描述的更多相关文章

  1. TCP/IP 协议标准简单描述

    TCP/IP 协议标准简单描述 说明 分为三部分:中文名称.缩写.说明. 应用层 DNS 域名服务 (DNS) 功能: 将域名转化为IP地址 BOOTP 引导程序协议 (BOOTP) 功能: 允许无盘 ...

  2. 第二篇--上传git 代码

    准备工作: 首先,注册一个GitHub账号. 接着,新建一个仓库. 最后,下载Git 上传代码步骤: 第一步,新建一个本地文件夹作为本地仓库,进入该文件夹. 右击选择Git Bash Here ,输入 ...

  3. Java 学习 第二篇;面向对象 定义类的简单语法:

    1:基本知识 [public / protected / private] class 类名 { 零个到多个构造器定义; 零个到多个属性; 零个到多个方法; } 其中类中各个成员之间的顺序没有关系,且 ...

  4. 第二篇MTV模型、基本命令、简单配置

    MTV模型.基本命令.简单配置 阅读目录(Content) MTV模型 基本命令 简单配置 MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Tem ...

  5. 【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析

    [渗透课程]第二篇下-HTTP协议的请求与响应深度剖析 HTTP1.1目前支持以下7种请求方法: 常见的MIME类型如下: 第一个数字有五种可能的取值: 目录 什么是请求方法?什么是请求头? HTTP ...

  6. 【渗透课程】特别篇-主流网站程序Oday大全以及拿shell思路

    版权和内容说明: 这篇文章不是本站编写,是从网络上摘抄的,但是经过了本站的改写优化,并将内容,格式规范化. 本篇说明:这篇文章结合了前辈们前几年一路挖掘出来的主流程序漏洞以及思路, 小编写在前面是想让 ...

  7. Netty实现高性能IOT服务器(Groza)之手撕MQTT协议篇上

    前言 诞生及优势 MQTT由Andy Stanford-Clark(IBM)和Arlen Nipper(Eurotech,现为Cirrus Link)于1999年开发,用于监测穿越沙漠的石油管道.目标 ...

  8. 【渗透课程】第四篇-Web安全之信息探测

    Web之信息探测,从这篇开始就正式进入了Web渗透实战过程了,嗯,前面都是讲基础,下面我们来讲Web中的信息探测. 信息探测,主要的目的 收集目标服务器系统信息(IP,服务器所用系统等) 收集目标网站 ...

  9. Django学习笔记第二篇--关于请求获取

    #细节都在代码段里面讲解 零.绪论: HTTP协议是一种请求响应的协议,一次请求一次响应.所以这部分的讲解将分为三个部分:请求获取,分析处理.返回响应. 一.获取请求数据: 1.POST和GET类型 ...

随机推荐

  1. ArrayList和LinkedList源码

    1 ArrayList 1.1 父类 java.lang.Object 继承者 java.util.AbstractCollection<E> 继承者 java.util.Abstract ...

  2. Linux基础(三)

    一.正文处理命令及tar命令 1.文件合并 cat a.txt b.txt > c.txt 2.打包 归档命令tar可以把多个文件打包成一个文件 如tar cvf test.tar a.txt ...

  3. UVALive - 5107 - A hard Aoshu Problem

    题目链接:https://vjudge.net/problem/UVALive-5107 题目大意:用ABCDE代表不同的数字,给出形如ABBDE___ABCCC = BDBDE的东西: 空格里面可以 ...

  4. Experience of Python Learning Week 1

    1.The founder of python is Guido van Rossum ,he created it on Christmas in 1989, smriti of ABC langu ...

  5. 小白也能看懂的插件化DroidPlugin原理(三)-- 如何拦截startActivity方法

    前言:在前两篇文章中分别介绍了动态代理.反射机制和Hook机制,如果对这些还不太了解的童鞋建议先去参考一下前两篇文章.经过了前面两篇文章的铺垫,终于可以玩点真刀实弹的了,本篇将会通过 Hook 掉 s ...

  6. tomcat 与 java web中url路径的配置以及使用规则详情(长期更新)

    首先我们看一下在myeclipse中建立的java web项目的结构 在这里我们需要注意这个webroot也就是我们在tomcat里的webapp里面的应用 之所以每一个项目都有这个webroot,是 ...

  7. 百度百科Tooltip的实现--原生js的应用

    我们在浏览百度百科时,不难发现提示框的存在,如下图: 实现如下: 1.HTML代码部分 <!DOCTYPE html><html lang="en">< ...

  8. 1.初入GitHub

    进入github官网,点击右上角注册按钮.  填写账号名,邮箱和密码    选择免费的公开仓库,点击完成就提示注册成功了.   ps:付费一般是给企业用户使用的,用来存放一些不公开的代码.所以是付费的 ...

  9. swift3.0 移除当前页面的前一个页面

    用的是以下的跳转方式 self.navigationController?.pushViewController(viewController, animated: true) 在当前页面移除方式 s ...

  10. canvas的学习

    canvas的学习 一. //获取画布 var mycanvasEle = document.getElementById("mycanvas");二. //内容 var ctx ...