zoukankan      html  css  js  c++  java
  • 1,http协议的细节部分学习

    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

    解释:请求方法 请求网址 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。工具太多,目前也分不清这些有什么类别区分。

  • 相关阅读:
    CentOS上svn checkout时报错SSL handshake failed: SSL error: Key usage violation in certificate has been det
    SnmpTools配置
    Django下载文件
    Cacti的使用
    RRDtool 安装和使用
    SNMP 安装及使用
    Openstack CentOS6.5 ALL IN ONE 安装
    mysqladmin -u root password
    VS2013打包程序步骤
    python中使用rabbitmq消息中间件
  • 原文地址:https://www.cnblogs.com/Miss-Elsa/p/6768212.html
Copyright © 2011-2022 走看看