在学习Fiddler之前,最好先学习一下HTTP协议。

HTTP协议简介

什么是HTTP协议

超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
目前我们使用的是HTTP/1.1 版本。

HTTP协议是无状态的

同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端,
也就是说客户端发送一次请求,服务器端接收请求,经过处理返回给客户端信息,然后客户端和服务器端的连接就断开了。
为了维护他们之间的链接,让服务器知道这是前一个用户发送的请求,必须在一个地方保存客户端的信息。
有两种解决方案,一是在客户端保存,二是在服务器端保存。保存在客户端的是cookie,保存在服务器端的是session 。

cookie与session的区别:
①保存位置不一样;
②cookie不是很安全,别人可以分析存放在本地的cookie进行cookie欺骗;
③session会在一定时间内保存在服务器上,当访问增多,会影响服务器的性能;
④单个cookie保存的数据不能超过4K,一个站点最多保存20个cookie。

cookie与session的共同点:
①他们两个都是解决的http协议无状态的问题;
②都保存的是用户的历史操作

HTTP请求的过程

在浏览器的地址栏中输入网址,既URL,然后就看到了网页。 原理是怎样的呢?
打开浏览器,在浏览器的地址栏输入http://www.cnblogs.com/zhengyihan1216/p/6107933.html
1.创建连接。
  当我们输入这样一个请求时,首先要建立一个socket连接,因为socket是通过ip和端口建立的,所以之前还有一个DNS解析过程,把www.cnblogs.com变成ip,如果url里不包含端口号,则会使用该协议的默认端口号。
2.请求。
  连接成功创建后,开始向web服务器发送请求。HTTP请求中常用的方法有GET、POST、PUT、DELETE,对应着查、改、增、删;
  请求时发送一个HTTP请求报文。
3.响应。
  web服务器收到这个请求,进行处理。从它的文档空间中搜索子目录/zhengyihan1216/p的文件6107933.html。根据找到文件的情况,Web服务器把查找结果传送给相应的Web浏览器;
  响应时会返回一个HTTP响应报文。
4.关闭连接:当应答结束后,Web浏览器与Web服务器必须断开,以保证其它Web浏览器能够与Web服务器建立连接。

URL

URL:Uniform Resource Locator, 统一资源定位符;
是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。
Internet上的每一个网页都具有一个唯一的名称标识,通常称之为URL地址,这种地址可以是本地磁盘,也可以是局域网上的某一台计算机,更多的是Internet上的站点。
简单地说,URL就是Web地址,俗称“网址”。

URL的一般格式为(带方括号[]的为可选项):
protocol :// hostname[:port] / path / [;url-params][?query]#fragment

格式说明:
1、protocol(协议):指定使用的传输协议,下面列出几个常用的协议。
     http       通过 HTTP 访问资源,是目前WWW中应用最广的协议,格式 http:// 
     https     通过HTTPS 访问资源。   格式 https://
     file        资源是本地计算机上的文件。格式file:// 
     ftp        通过 FTP访问资源。格式 ftp://
     gopher  通过 Gopher 协议访问该资源。

2、hostname(主机名):“//”与第一个“/”之间的内容。指存放资源的服务器的域名系统 (DNS) 主机名或IP地址。“//”与第一个“/”之间的内容。

3、:port(端口号):是hostname后面的冒号后面的整数。
     若使用的默认端口,可省略;若对端口进行重定义,即采用非默认端口号时,URL中就不能省略端口号。
     各种传输协议都有默认的端口号,如http的默认端口为80,HTTPS默认的端口号为443。

4、path(路径):由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。
     路径的后面为空或“;”或“?”

5、url-params(url参数):这是用于指定特殊参数的可选项。“;”后面为url参数

6、query(查询):发送给http服务器的数据,为可选项目。
     用于给动态网页传递参数,每个参数的名和值用“=”符号隔开,若有多个参数,用“&”符号连接。

7、fragment:信息片断,字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。


http://www.cnblogs.com/zhengyihan1216/p/6011640.html;id=8079?name=zhengyihan&x=true#blogs
ptotocol(协议):http
hostname(主机):www.cnblogs.com
port(端口号):此处省略了,说明是默认的80
path(路径):/zhengyihan1216/p/6011640.html
url-params(参数):id=8079
query:name=zhengyihan&x=true
fragment:blogs

HTTP报文的结构

HTTP请求报文结构,起始行、头部、空行、body(header和body之间有个空行),如下图:

(该图片只是http报文的大致结构,下一篇中对请求报文和响应报文中的内容进行详细学习)

若文中内容有误,望大家指正,谢谢哦

Fiddler--一、HTTP协议简介的更多相关文章

  1. MODBUS-RTU通讯协议简介

    MODBUS-RTU通讯协议简介   什么是MODBUS? MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司 的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规 ...

  2. JavaWeb:Web与HTTP协议简介

    JavaWeb:Web与HTTP协议简介 Web的概念 什么是Web: Web是网络上使用最广泛的分布式应用架构. 旨在共享分布在网络上的各个Web服务器中的所有互相连接的信息. 三个特征: 用HTM ...

  3. CC2540开发板学习笔记(九)—— BLE协议简介

    一.BLE协议简介 1.协议是什么? 协议是一系列的通信标准,双方需要共同按照这进行正常数据 协议是一系列的通信标准,双方需要共同按照这进行正常数据发射和 接收.协议栈是的具体实现形式,通俗点来理解就 ...

  4. HTTP 协议简介

    HTTP 协议简介 博客分类: acl开发--HTTP协议篇 网络协议http协议  一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是 ...

  5. OAUTH协议简介

    OAUTH协议简介 原文来自:http://blog.csdn.net/hereweare2009/article/details/3968582 分类: Open API2009-03-08 12: ...

  6. GRE 协议简介

    1. 协议简介    gre(generic routing encapsulation,通用路由封装)协议是对某些网络层协议(如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络 ...

  7. HTTP协议简介详解 HTTP协议发展 原理 请求方法 响应状态码 请求头 请求首部 java模拟浏览器客户端服务端

    协议简介 协议,自然语言里面就是契约,也是双方或者多方经过协商达成的一致意见; 契约也即类似于合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做; 通信协议,也即是双方通过网络通信必 ...

  8. Tsung MQTT协议简介及MQTT xml文档配置介绍

    MQTT协议简介及MQTT xml文档配置介绍 by:授客 QQ:1033553122 1. MQTT协议介绍 MQTT(Message Queuing Telemetry Transport,消息队 ...

  9. python 全栈开发,Day66(web应用,http协议简介,web框架)

    一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...

随机推荐

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. js学习笔记:操作iframe

    iframe可以说是比较老得话题了,而且网上也基本上在说少用iframe,其原因大致为:堵塞页面加载.安全问题.兼容性问题.搜索引擎抓取不到等等,不过相对于这些缺点,iframe的优点更牛,跨域请求. ...

  3. 使用Oracle官方巡检工具ORAchk巡检数据库

    ORAchk概述 ORAchk是Oracle官方出品的Oracle产品健康检查工具,可以从MOS(My Oracle Support)网站上下载,免费使用.这个工具可以检查Oracle数据库,Gold ...

  4. 计算机程序的思维逻辑 (60) - 随机读写文件及其应用 - 实现一个简单的KV数据库

    57节介绍了字节流, 58节介绍了字符流,它们都是以流的方式读写文件,流的方式有几个限制: 要么读,要么写,不能同时读和写 不能随机读写,只能从头读到尾,且不能重复读,虽然通过缓冲可以实现部分重读,但 ...

  5. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(一)

    初识马尔可夫和马尔可夫链 作者:白宁超 2016年7月10日20:34:20 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无什么用场.直到学习自然语言处 ...

  6. 玩转Vim 编辑器

    一:VIM快速入门 1.vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数 ...

  7. 微信公众号开发(一)--验证服务器地址的Java实现

    现在主流上都用php写微信公众号后台,其实作为后端语言之一的java也可以实现. 这篇文章将对验证服务器地址这一步做出实现. 参考资料:1.慕课网-<初识java微信公众号开发>,2.微信 ...

  8. 超详细mysql left join,right join,inner join用法分析

    下面是例子分析表A记录如下: aID        aNum 1           a20050111 2           a20050112 3           a20050113 4   ...

  9. Linux不能上网ping:unknown host问题怎么解决?

    Linux不能上网提示ping:unknown host 检查步骤 Linux系统跟windows平台有所不同的是,为了更好的做网络服务应用.Linux下多用于网络服务器,而且操作界面是字符界面.对于 ...

  10. 瞬间记住Javascript中apply与call的区别

    关于Javascript函数的apply与call方法的用法,网上的文章很多,我就不多话了.apply和call的作用很相似,但使用方式有区别 apply与call的第一个参数都是一个对象,这个对象就 ...