http协议(80端口)
https(443端口)

主要是一直对三次握手模模糊糊,并且抓包的时候不知道那些Accept、User-Agent什么意思,就仔细找课程学了一下。

学习简介:

1,涉及工具(wireshark、fiddler)

2,请求报文(请求行、请求头、请求正文)

3、应答报文(应答行、应答头、应答正文)

4、http捕获工具

我先通过wireshark看TCP三次握手-发送请求-请求响应-请求状态码

1.三次握手,

2.响应完了,

在Fiddler上面找了2个请求报文,就开始查请求中的参数是什么含义

一、请求报文(请求行、请求头、请求正文)

例子:

GET /?a1004 HTTP/1.1
Accept: */*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.5; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)
Accept-Encoding: gzip, deflate
Proxy-Connection: Keep-Alive
Host: hao.360.cn
Cookie: count=12; somultiswitch=1; tweetSiteFlag2=1; city_code=101280109; sidebarstipstatus=20160401yule0401_1; sessionID=132730903.3951674013491768000.1492047237189.6052; logwtb=1; logwtb2=1; logwtb3=1; logwtb4=1; channelOrder=a_8_e_ob; customEng=4-13; __guid=132730903.3884126908240207400.1490749650870.3637; _ga=GA1.2.1007699322.1491787380; __gid=206785792.819567615.1491960528189.1491960563795.3; __huid=11l1zL6fePYhIdEDnChXoUN1EY9+aTvi8EzujTcIev8/o=; __hsid=b3ebde9e0c285f61

1、请求行

例子:Get /mainpage.aspx HTTP/1.1\r\n

解释:请求方法 请求网址 http版本

1.请求方法

http1.1:7种请求方法
1.Get
2.Post
3.Head
4.Options
5.Put
6.Delete
7.Trace

疑问 Get请求和Post请求的区别?

Get从服务器获取数据
Post向服务器发送数据

我原先还以为Get是请求,Post是应答呢,这回纠正了,都是请求

2、请求头

解释:

1.Host: hao.360.cn,

指定请求的Internet主机和端口号,是原始服务器(网关)的位置
HTTP/1.1请求必须包含主机头域,否则返回400状态码(服务器)

2.User-Agent:

标示请求的一些信息,浏览器类型和版本、操作系统等
这里的信息通常做数据收集,可以分析用户常用什么浏览器访问我们的服务

3.Accept: */*

指定客户端接受哪些类型的响应内容,能够在客户浏览器直接打开的格式
经常:Accept: image/png,image/*;q=0.8,*/*;q=0.5

疑问 q是什么意思?

4.Accept-Language: zh-cn

指客户端的操作系统语言
经常:Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

5.Accept-Encoding: gzip, deflate

这个属性表示客户端能接受的编码规则或格式规范,deflate应该是通用

6.Referer:网址

理解为当前请求的上一个依赖请求(地址),可以是绝对路径/相对路径,与Host拼接成完整的URL地址

7.Proxy-Connection: Keep-Alive

Connection:Keep-Alive

表示当client和server通信时对于长链接如何进行处理,在http1.1中双方都默认对方是支持长连接的,不使用长链接,则值是close。哪方不想支持长链接,在reques或者response的header中Connection是close。

疑问 长链接和短连接?
短链接:当前正在只用的TCP链接在当前请求处理完毕后会被断掉,以后client在进行新的请求时创建新的TCP

其他:Date、Poxy、Cache-Control、Cookies就是按照字面意思理解.

3、请求正文

Get请求通常无请求正文

Post请求正文,比如username=chen&pwd=12345&check=on,类似LR中web_custom_request中的body进行拼接的样子

二、应答报文(头、行、正文)

例子:

HTTP/1.1 503 Service Unavailable
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Proxy-Connection: close
Connection: close
Content-Length: 787

1.应答行

收集了3个例子

HTTP/1.1 200 OK
HTTP/1.1 503 Service Unavailable
HTTP/1.1 304 Not Modified

版本 http请求应答返回码 英文名称

另外整理http请求应答返回码

这里是200 OK 请求成功,一般用于Get和Post请求、304 未修改 Not Modified、503 由于超载或系统维护,服务器暂时不能处理请求,延时可包含在response的header中的Retry-After属性中 Service Unavailable

2.应答头

Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Proxy-Connection: close
Connection: close
Content-Length: 787

根据上面对请求头的介绍,这里就知道介绍的是服务器的情况,特别注意1、Content-Encoding:gzip,指返回的内容经过了gzip压缩技术;2、Content-Length:787,指返回的正文长度

3、应答正文

可以使用压缩技术,但一般是基于html的页面信息

三、http捕获工具

1、wireshark             协议的表达方式比较清晰

2、Firefox firebug       在Firefox工具-附加组件中搜索firebug组件并安装

3、chrome                 F12,我用这个来看前端性能优化

4、IE                         http watch,最稳定版本9.4,网页数据分析工具,支持Firefox,支持https

捕获工具我还用fiddler、firefox的poster。fiddler可以设置断点修改参数,也可以通过设置,支持捕获https。工具太多,目前也分不清这些有什么类别区分。

1,http协议的细节部分学习的更多相关文章

  1. [转] 用协议分析工具学习TCP/IP

    一.前言 目前,网络的速度发展非常快,学习网络的人也越来越多,稍有网络常识的人都知道TCP/IP协议是网络的基础,是Internet的语言,可以说没有TCP/IP协议就没有互联网的今天.目前号称搞网的 ...

  2. Protocol Informatics (PI项目)【基于网络轨迹的协议逆向工程文献学习】

    Protocol Informatics[基于网络轨迹的协议逆向工程文献学习]by tsy 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途.恕作者著作 ...

  3. 浅议SNMP安全、SNMP协议、网络管理学习

    相关学习资料 tcp-ip详解卷1:协议.pdf(重点看25章SNMP部分) http://www.rfc-editor.org/rfc/rfc1213.txt http://www.rfc-edit ...

  4. HTTP协议状态码学习

    一直以来都在追求实战,从而忽视了对理论知识的深入学习和理解.这并不可怕,可怕的是当意识到自己的不足时,没有行动. 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码   说明 ...

  5. 网络协议 HTTP入门学习

    概述 Web 的诞生,源于三大技术的诞生,它们都是当年 Web 之父 Tim Berners-Lee 自己 开发的,世界上第一个网站诞生的时间是 1991 年,三大技术的诞生也就是在此之前的不久: 1 ...

  6. FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接

    一.为什么写这个 昨天遇到个ftp相关的问题,关于ftp匿名访问的.花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输入url,即可直接访问. 期间不会弹出输入用户 ...

  7. 用HTTP协议传输媒体文件 学习

    用HTTP协议传输媒体文件可以分两个阶段,第一个阶段是Progressive Download(渐进式下载方式)阶段,第二个阶段是HTTP streaming(HTTP流化)阶段.其中,第一个阶段可以 ...

  8. HTTP协议的重新学习

    思论:做互联网一年多了,想了想对http协议的认识还处于很笼统的阶段,抽休息时间,重新梳理一下自己的网络知识. 1.什么叫HTTP协议? HTTP协议是Hyper TEXT Transfer Prot ...

  9. http 协议的简单学习 虽然有点老但是 还不错

    HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送 ...

随机推荐

  1. 手游服务器端接入google的SDK

    在接入google的SDK之前,当然先要用你的google开发者账号要去申请你接入的应用,这些步骤就直接省略了具体的步骤可以查看这篇博文:http://blog.csdn.net/hjun01/art ...

  2. iOS开发-测量APP启动耗时

    冷启动 冷启动就是App被kill掉以后一切从头开始启动的过程. 热启动 当用户按下home键的时候,iOS的App并不会马上被kill掉,还会继续存活若干时间.理想情况下,用户点击App的图标再次回 ...

  3. ZBrush 笔刷的基础参数

    ZBrush®中的笔刷基本参数主要包括3个:Draw Size(绘制大小).Focal Shift(焦点衰减)和Z Intensity(深度强度),通常使用这3个基本参数对笔刷进行调整. 在视图文档区 ...

  4. day08 数字,字符串类型内置方法

    目录 数字类型内置方法 为什么要有数据类型? 定义方式 方法 储存一个值or多个值? 有序or无序?(有序:有索引, 无序:无索引) 可变or不可变(可变:值变id不变,不可变:值变id也变) 字符串 ...

  5. day05-2 变量、常量、注释以及内存管理

    目录 什么是变量 Python中定义变量 定义变量名的命名规范 什么是常量 定义常量 注释是什么 注释有什么用 内存管理(重要) 引用计数 垃圾回收机制 小整数池 定义变量的三个特征 什么是变量 变量 ...

  6. vuex存储和本地存储的区别

    1.实质的区别 vuex存的是状态,存储在内存,localstorage是浏览器提供的接口,让你存的是文件,以文件的形式存储在本地 2.应用场景 vuex用于组件之间的传值,localstorage则 ...

  7. Sona && Little Elephant and Array && Little Elephant and Array && D-query && Powerful array && Fast Queries (莫队)

    vjudge上莫队专题 真的是要吐槽自己(自己的莫队手残写了2个bug) s=sqrt(n) 是元素的个数而不是询问的个数(之所以是sqrt(n)使得左端点每个块左端点的范围嘴都是sqrt(n)) 在 ...

  8. JS table分页

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="paging3.aspx.c ...

  9. create raid5

    # umout 所有数据disk for i in {1..11};do umount /disk$i;done # 修改/etc/fstab,注释掉 /dev/sd[b-l] vim /etc/fs ...

  10. qt 摄像头程序

    http://www.oschina.net/code/snippet_124925_3789?p=3#comments http://www.codesoso.net/Search?q=qt+%C9 ...