zoukankan      html  css  js  c++  java
  • 第二章、http协议及嗅探抓包--http协议详解

    初识http协议
        hypertext trandfer protocol 超文本传输协议,是一种分布式,合作式,多媒体信息系统服务,面向应用层的协议。使用最广泛的应用层协议,基于传输层的TCP协议进行通信,Http协议是通用、无状态的协议
        功能: 用于在服务器和客户机之前传输超文本文件

    http协议基础知识
        http特点
            客户/服务器模式:一个服务器可以为分布在世界的许多客户服务
            简单:有效处理大量请求,程序规模小,所以速度快,相比其他协议时间开销小
            灵活:允许传输任意类型的数据对象,可以通过Content-type来指定数据类型
            无状态:无状态的协议,运行速度高,服务器应答速度快

        http的事务处理
            客户端与服务器端建立连接
            客户端向服务器端发送请求
            服务器端向客户端回复响应
            断开连接

        http的消息链
            
        proxy介绍

        http消息介绍
            消息类型有两大类
            请求消息(request):由客户端发送给服务器消息(组成:请求行Request-Line 可选的头域Header Field 实体Entity-Body)
            响应消息(response):由服务端回复客户端请求的消息(组成:状态行Status-Line 可选的头域Header Field 实体Entity-Body)

        http请求消息
            请求消息结构
            Full-Request = Request-Line
                * ( General-Header
                | Request-Header
                | Entity-Header)
                CRLF
                [Entity-Body]
                示例:

            请求行结构
            Request-Line = Method SP
                            Request-URI
                            SP
                            HTTP-Version CRLF
                
                请求行示例:GET
                http://taobao.com/pub/WWW/page.html
                HTTP/1.1

                请求消息示例:
                http://taobao.com/pub/WWW/page.html
                HTTP/1.1
                Connection: close
                User-agent: Mozilla/4.0
                Accept-Ecoding: gzip,compress
                CR LF
                Entity-Body
                --------------------------
                理解一下本例中的各个报头
                Connection: close是在告知服务器本浏览器不想使用永久连接的方式(http/1.0非永久连接, http/1.1.永久连接)
                User-agent: Mozilla/4.0指定用户代理服务器的类型
                Accept-Ecoding: 指出发送次请求的浏览器支持哪些压缩编码方式

            请求方法:
                GET:获取一个URL指定的资源,即资源实体
                POST:向服务器提交数据
                HEAD:获取一个指定资源的信息
                PUT:向服务器提交资源
                DELETE:请求源服务器删除Request-URI标识的资源
                TRACE:网络跟踪
                CONNECT:与PROXY之间的连接管理
                OPTIONS:查询能力

        http响应消息
            响应消息结构
            Full-Response = Status-Line
                * ( General-Header
                | response-Header
                | Entity-Header)
                CRLF
                [Entity-Body]

            响应消息示例:
                HTTP/1.1 200 OK
                Connection: close
                Date:Thu 13 Oct 2005
                Server: apache/2.0
                Last-Nodified: Mon, 22 Jun
                Content-Lenght: 6821
                Content-Type: text/html

            状态码:
            1xx: 信息, 接收到请求,继续处理
            2xx: 成功, 操作成功地收到,理解和接受
            3xx: 重定向, 为了完成请求,必须采取进一步措施
            4xx: 客户端错误, 请求的语法有错误或不能完全被满足
            5xx: 服务端错误, 服务器无法完成明显有效的请求

  • 相关阅读:
    学习《Building Applications with FME Objects》 之十 使用集合
    oracle左右连接的另外表示方法
    拥抱SQLAlchemy 之二 拉拉手,我请你去看电影~
    Oracle中的Union、Union All、Intersect、Minus
    System.Data.SQLite测试
    SmartSVN + google code
    学习《Building Applications with FME Objects》 之九 高级要素处理
    Django静态文件配置备忘录
    测试oracle with as
    测量坐标系中单个多边形面积解析法计算的程序源代码
  • 原文地址:https://www.cnblogs.com/dingzp/p/10871238.html
Copyright © 2011-2022 走看看