本篇将会涉及:

什么是HTTP,以及HTTP的工作方式

HTTP的方法

一、什么是HTTP

HTTP协议

HTTP全称超文本传输协议,一个设计用来来客户端和服务器之间进行通信的协议。HTTP在网络世界中属于OSI模型的第七层——应用层,也属于TCP/IP模型的第四层——应用层。

关于什么是OSI模型,什么又是TCP/IP模型,简而言之,其是计算机网络世界的一个网络体系结构,用来定义计算机网络及其各个部分通信的原理的作用。

下图是OSI模型和TCP/IP模型的一个简单示例图:

OSI模型与TCP/IP模型

OSI模型与TCP/IP模型并非是一一对应的,但是思路和结构大体上是相似的。

TCP/IP模型中的网络接口层就是我们的各种网络设备(路由器、交换机、电脑等)的网络接口以及接口之间的物理链路(网线、光纤等);网际层则是网络设备之间的寻址和路由,确定两个设备之间通信的路径,IP地址就是作用在这一层;接下来的传输层就是在通过IP确定了设备之间的路由后,进行勾搭和建立联系,这一层的主要协议是TCP和UDP,TCP是面向连接的传输协议(经典的三次握手),在双方的确认之下,两者才会建立起网络连接,而UDP则是面向无连接的传输协议,通讯时不需要接收方确认,属于不可靠的传输。最后就是应用层了,这一层定义了很多高级的传输协议,比如我们的网络爬虫涉及到的HTTP,还有DNS、FTP等,很多网络应用均是基于这一层的网络协议进行开发的。

TCP/IP各层及其常用协议

我们的网络爬虫涉及到上三层,比如获取HTML涉及的http,使用代理IP涉及到的IP,以及建立通信连接的TCP/UDP。

下面,我们使用wireshark抓取打开一个网页的数据包,通过对网络数据进行抓包,我们能够很清晰的理清TCP/IP各层的关系。

打开网址www.huabandata.com的HTTP数据包

从图中可以看到,我们向远处服务器发送了一个HTTP请求,捕获到的数据包则显示我们发送出去的HTTP请求是以Frame帧进行传输的。

我们的请求字段数据打包在HTTP请求中,HTTP请求打包在了TCP请求中,TCP请求进而通过IP进行打包,最后通过Frame帧传输出去。这就完成了一个请求网页的过程。

HTTP协议的工作方式

HTTP用来实现客户端和服务器端的通信,主要依靠请求和响应来完成一个工作。

客户端发送请求,服务器端响应请求。在一次HTTP连接中,发送请求的永远都是客户端,而回复响应的则永远都是服务器端。并且,在HTTP中,只能由客户端发送请求,服务器端才能响应,否则服务器端不能主动对客户端进行响应。

现实世界的体现就是,网站服务器不会平白无故给我们返回一个HTML页面,我们只有输入或点击一个网址,网页才会呈现在浏览器上。

HTP的请求与响应

HTTP的协议版本

HTTP协议拥有两个版本:

HTTP/1.0

HTTP/1.1

http1.0是http协议的基础,而http1.1则添加和完善和http1.0的功能。

HTTP运行的端口

默认情况下,HTTP协议运行在服务器端的80端口上。

HTTPS

HTTP协议使用明文进行传输和通信,这对某些隐秘的通信就很不安全,容易被窃取。

于是HTTPS应运而生。

HTTPS 使用SSL或TLS对HTTP的消息进行加密,并运行在443端口上

HTTP的消息结构

通常一个HTTP消息包括客户端向服务器端发送的请求消息和服务器端向客户端发送的响应消息。这两种类型的消息均由一个起始行,一个或者多个头域,一个指示头域结束的空行和可选的消息体组成。

其中,请求消息:

起始行:由请求方法、请求的URL以及使用的HTTP协议版本三部分组成

头域:各种请求头(下面详述)

消息体:一般的GET请求没有消息体

HTTP请求的消息结构

响应消息:

起始行:由响应的协议版本、响应状态码和响应状态码描述三部分组成;

头域:各种响应头

消息体:响应请求的正文,比如一个HTML页面、一个文件、一个图片等

HTTP响应的消息结构

二、HTTP的方法

根据HTTP标准的定义,HTTP的请求方法有以下8种:

GET:请求指定的资源,并返回资源实体。

POST:向指定的资源提交数据并处理请求(上传文件或提交表单之类的操作)。

HEAD:类似于GET方法,请求指定的资源,但不返回资源实体。

PUT:请求更新指定的资源。

DELETE:请求删除指定的资源。

OPTIONS:返回服务器对指定资源所支持的请求方法。

TRACE:回显服务器收到的请求,主要用来测试或诊断。

CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

其中:

在HTTP/1.0中定义的方法有:get、post、head

在HTTP/1.1中定义的方法有:options、put、delete、trace、connect等

分享到:

python网络渗透入门_利用Python进行Web渗透测试(四):HTTP协议基础相关推荐

  1. python展示全部好友_利用Python网络爬虫抓取微信好友的签名及其可视化展示

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

  2. python爬虫新闻热点_利用Python网络爬虫技术追踪时事热点

    龙源期刊网 http://www.qikan.com.cn 利用 Python 网络爬虫技术追踪时事热点 作者:廖泽龙 王昊源 刘紫嫣

  3. python爬虫好友聊天记录_利用Python网络爬虫抓取微信好友的签名及其可视化展示...

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

  4. python爬虫好友图片_利用Python网络爬虫抓取微信好友的签名及其可视化展示

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

  5. 利用python进行数据分析 笔记_利用python进行数据分析(O#039;Relly)学习笔记-一团网...

    利用python进行数据分析(O'Relly)学习笔记 1.第一个bug import pandas plot(arrange(10)) #报错name 'plot' is not defined. ...

  6. python京东商品采集_利用Python正则表达式抓取京东网商品信息

    京东(JD.com)是中国最大的自营式电商企业,2015年第一季度在中国自营式B2C电商市场的占有率为56.3%.如此庞大的一个电商网站,上面的商品信息是海量的,小编今天就带小伙伴利用正则表达式,并且 ...

  7. python post请求 上传图片_利用python模拟实现POST请求提交图片的方法

    本文主要给大家介绍的是关于利用python模拟实现POST请求提交图片的方法,分享出来供大家参考学习,下面来一看看详细的介绍: 使用requests来模拟HTTP请求本来是一件非常轻松的事情,比如上传 ...

  8. python自定义函数画图_利用Python绘图和可视化(长文慎入)

    Python有许多可视化工具,但是我主要讲解matplotlib(http://matplotlib.sourceforge.net).此外,还可以利用诸如d3.js(http://d3js.org/ ...

  9. python做股票分析_利用Python进行股票投资组合分析(调试)

    pythonsp500-robo-advisor-edition Python for Financial Analyses 需要的镜像文件和数据--Robo Advisor edition. 小结 ...

最新文章

  1. 敏捷领导者所需的技能
  2. python打开并读取csv文件_!python3中使用使用read_csv( )读取csv文件,文件路径中含有中文,无法读取怎么处理?...
  3. StereoRectify()函数定义及用法畸变矫正与立体校正
  4. [REGEX] 匹配任意字符(包括换行符)
  5. html网页上传到服务器_JSP+Servlet实现文件上传到服务器功能
  6. Ionic4.x 中自定义公共模块
  7. jmeter mysql driver_jmeter测试mysql数据库之JDBC请求
  8. 官宣,Shane Miller 当选 Rust 基金会首任主席
  9. D-LINK二层交换机Asymmetric VLAN配置
  10. 什么时候使用Task.Delay,什么时候使用Thread.Sleep?
  11. echarts柱状图的数据差距过大影响美观
  12. MySQL灾备恢复在线主从复制变成主主复制及多源复制【转】
  13. Julia也能做爬虫?可以,但没必要
  14. Unity3D Slider控件(滑动条)
  15. oracle 中 使用 begin end 批量更新,删除资料
  16. 内网ip映射外网方法
  17. 关于促进交通运输与旅游融合发展的若干意见
  18. 解决Edge及Chrome等浏览器主页被篡改2345导航页
  19. 清理 Anaconda 的 pkgs
  20. Bigben vlc sdl 播放视频可随窗口改变大小

热门文章

  1. 请确保您已登录客户机操作系统。在客户机中装载虚拟CD驱动器,启动终端,使用tar解压...
  2. css气泡图片上下浮动
  3. 平面构成之形式美与要素
  4. 广东2018c语言二级答案,2018年3月全国计算机二级C语言练习题及答案(2)
  5. python-pandas-读取与写入文件
  6. 撩小姐姐的小程序(二)----旋转3D八音盒
  7. 北京注册公司,设立有限责任公司出资协议书
  8. java旅游管理面试,旅游管理专业面试问题
  9. Unity 云雾shader
  10. java-php-python-springboo垃圾分类网站计算机毕业设计