• Android-Http协议


    Http协议

      超文本传输协议,为无状态协议,基于请求和响应,有两个版本1.0,1.1,分别为短连接和长连接.

      短连接(http1.0默认):连接网络-->请求-->响应-->断开连接....连接网络-->请求-->响应-->断开连接....

      长连接(http1.1默认):连接网络-->请求-->响应-->请求-->响应-->请求-->响应....断开连接....

    请求和响应的格式

      请求:  

          a.请求行 (请求方式Method 资源路径 http版本号)-->(Get http://www.sohu.com/Default.aspx HTTP/1.1)

          b.消息头 (说明服务器要使用的附加信息)-->(ContentType:application/json Content_Length:18 等等其他头信息)

          c.请求实体 (需要传输到服务端的数据内容,以Post方式请求时才会有该项数据)

        GET请求

            GET / HTTP / 1.1

            Accept: */*

            Accept-Language: zh-cn

            Accept-Encoding: gzip, deflate

            User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)

            Host: www.google.cn

            Connection: Keep-Alive

        POST请求

            POST / HTTP1.1

            Host:www.wrox.com

            User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)

            Content-Type:application/x-www-form-urlencoded

            Content-Length:40

            Connection: Keep-Alive

     

            name=Professional%20Ajax&publisher=Wiley

        说明:  

            Content-Type说明了请求主体的内容是如何编码的.浏览器始终以application/x-www-form-urlencoded的格式编码来传送数据,这是针对简单URL编码的MIME类型.

            Content-Length说明了请求主体的字节数.

            最后请求主体.名称-值对的形式.

      响应:

          a.状态行 (协议 状态码 状态描述)

          b.消息头

          c.响应实体

            HTTP/1.1 200 OK

            Date: Fri, 22 May 2009 06:07:21 GMT

            Content-Type: text/html; charset=UTF-8

            <html>

            <head></head>

            <body>

            <!--body goes here-->

            </body>

            </html>

        说明:

            HTTP状态码200,找到资源,并且一切正常.

            Date:生成响应的日期和时间.

            Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8HTML源文体.

    HTTP状态码:

        100 继续
        101 分组交换协
        200 OK
        201 被创建
        202 被采纳
        203 非授权信息
        204 无内容
        205 重置内容
        206 部分内容
        300 多选项
        301 永久地传送
        302 找到
        303 参见其他
        304 未改动
        305 使用代理
        307 暂时重定向
        400 错误请求
        401 未授权
        402 要求付费
        403 禁止
        404 未找到
        405 不允许的方法
        406 不被采纳
        407 要求代理授权
        408 请求超时
        409 冲突
        410 过期的
        411 要求的长度
        412 前提不成立
        413 请求实例太大
        414 请求URI太大
        415 不支持的媒体类型
        416 无法满足的请求范围
        417 失败的预期
        500 内部服务器错误
        501 未被使用
        502 网关错误
        503 不可用的服务
        504 网关超时
        505 HTTP版本未被支持

    转自: http://www.cnblogs.com/cuixiaobo/archive/2012/06/30/2570926.html

  • 相关阅读:
    多线程篇七:通过Callable和Future获取线程池中单个务完成后的结果
    多线程篇六:线程池
    微服务学习和认识
    多线程篇五:多个线程访问共享对象和数据的方式
    多线程篇四:ThreadLocal实现线程范围内变量共享
    多线程篇三:线程同步
    多线程篇二:定时任务
    多线程篇一:传统线程实现方式
    Jms学习篇二:ActiveMQ
    04-运算符
  • 原文地址:https://www.cnblogs.com/kingshow123/p/protocol1.html
Copyright © 2020-2023  润新知