zoukankan      html  css  js  c++  java
  • http协议

    1,怎样理解HTTP/Soap协议

    SOAP (Simple Object Access Protocol):简单对象訪问协议。 主要用于 Web Service, Web Service协议主要包含两个方面:传输协议和数据表示。关于传输协议能够是 HTTP 或其它。数据表示也能够是 Key -Value (键值对)、XML或其它。仅仅只是如今通用的是http+soap
    一言以蔽之, SOAP 就是通过 HTTP 通信协议  传递XML 格式的数据。


    与 经常使用的HTTP Get、Post 一样。 SOAP 协议也是 基于 HTTP 通信协议执行的。
    Web Service 的调用方式有三种: GET (从Server 获取数据)、POST(向Server 传送数据)、SOAP。
    SOAP 的长处: 能够传送 结构化的数据。比方 事务管理。

    而 GET 和 POST 都无法传送。
    需明白一点:  SOAP 终于也是使用 HTTP 协议传送 XML 数据。


    2,Http请求

    协议名://主机名:port号/资源URI
    /*******************************
    GET /index.html HTTP/1.1
    Host: localhost:8088
    connection: Keep-Alive
    
    ******************************/

    3、request header

    Host, 请求头,标名请求主机器名。可为IP也可为域名,http1.1后强制使用,用此请求信息,可在服务端做WEB虚拟机,实现一机多WEB服务
    Content-Length,请求、响应体的数据字节大小
    Accept-Encoding,请求头,可接受的文本压缩算法,如: gzip, deflate
    Accept-Language,请求头。支持语言。client浏览器的设置。如:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
    User-Agent。请求头,浏览器信息,如:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0) Gecko/20100101 Firefox/12.0,
    细心会注冊到IE也会用Mozilla,这是一个历史问题,早期WEBserver貌似有问题。仅仅支持Mozilla,微软IE做为后起之秀仅仅能伪装成Mozilla
    Cookie,请求头,server或client在上次设置的COOKIE,包含作用域名(.360buy.com),过期时间。键与值。

    大部分WEBserver都会在第一次訪问时在响应头上加Set-Cookie。如:BAIDUID=49415814CDBBB4CE65EC50EE4BB65E9A:FG=1; expires=Wed, 07-Nov-42 07:03:34 GMT; path=/; domain=.baidu.com
    Referer。从一个连接打开一个新页面,新页面的请求通常会加此信息,标名是从哪里跳过来的,全部的页面的打开历史链就可被挖掘出来,有利于分析用户行为与CPS分成

    4、reponse header

    Content-Type, 响应的数据类型:text/html;charset=gbk
    Content-Length,响应的数据体大小
    Content-Encoding, 假设为文本、HTML信息,则使用的编码方式
    Date, 当前server日期
    Server, server名
    Set-Cookie,第一次訪问或服务设置COOKIE时,响应头里会有此信息。如,BAIDUID=49415814CDBBB4CE65EC50EE4BB65E9A:FG=1;
    expires=Wed, 07-Nov-42 07:03:34 GMT; path=/; domain=.baidu.com


    5、 Cache-Control , Expires控制缓存的两个响应头。假设都出如今响应头里。按Cache-Controler计算


    Cache-Control,为响应头信息,取值为:
    Public。当前系统不论什么登录的用户都可使用
    Private,当前系统登录的此用户进行缓存
    no-cache,不做缓存
    max-age,缓存指定秒数,如Cache-control: max-age=5,表示当訪问此网页后的5秒内再次訪问不会去server

    Expires,为响应头,Http1.1以上版本号,与Max-Age一样。用来控制缓存


    6。 Last-Modified, If-Modified-Since


    Last-Modified, 为响应头,标名本资料上一次的改动时间
    If-Modified-Since。为请求头,把上一次请求的Last-Modified日期信息为值进行请求,假设server推断Last-Modified时间与server一致则直接返回304。浏览器使用本地缓存进行显示。

    一般用来节省带宽,加速请求与显示。

    7、ETag + If-Match相同是缓存策略。做为以上的补充


    ETag。为响应头。在 http1.1中规定为一个字串。详细格式没有定义,用来校验client缓存
    If-Match,为请求头信息,把上一次请求响应的Etag带上进行请求,服务端的处理方法比較灵活。做为Cache-Control,Expires,Last-
    Modified的补充,可不以时间为參考的缓存策略。


    Apache默认对html的Etag取值为INode+Mtime+Size
    如:Etag”2e681a-6-5d044840″1
    用途:

    • a,只改变的改动时间,但内容未做改动
    • b,改动很频繁,一秒内改动千次,但Cache-Control与Last-Modified,仅仅能控制在秒级,这是对控制力度的进一步提升
    • c,某些server不能精确的得到文件的最后改动时间。个例,我们使用的server都已支持,所以所用不多。




    8、Connection Keep-Alive


    HTTP协议採用TCP协议,每次页面资源请求都被规定为一次连接,而每次连接的TCP三次握手关闭时的四次通信与port滞留等待防止数据包未传送。
    而每一个TCP都是一个打开文件IO句柄数。Unix/Linux又对这个做了严格的限制。
    一个网页。大量资源文件(htmlcssjavascriptimage)须要载入量时须要大数据量的TCP连接,为了降低socket连接数提供KeepAlive,使一个tcp连接可反复使用。


    事实也证明用Keep-Alive速度也更快(但移动client接口开发会关掉此属性)。

    9、Range: 10-100


    取信息的一部分。断点下载时经常使用

    10、返回状态码

    200,返回成功

    501。server内容错误

    304,使用本地缓firebug

    404,资源没有找到




    11,ios开发之http协议


    在 iPhone 开发中。必定会用到 HTTP 通信协议。  所以有必要对 HTTP协议有一个清晰的认识。


    HTTP 协议主要有下面几个特点:
    (1)HTTP 协议的工作方式是典型的C/S 结构
     所谓 C/S 结构。就是为每一个应用 独立开发一个client软件。

    与此相应的是B/S结构。 B/S 结构是採用浏览器作为通用的软件client。 所以从这个意义上来讲, B/S结构仍然是C/S 结构的一种。
    (2)传输数据少
    client 向server端 通过HTTP 协议请求服务时,仅仅需传送请求方法和所请求资源的路径(URL),因此,须要传输的数据很的少。


    (3)能够通过HTTP 协议传输随意类型的数据对象
     一般来说,HTTP协议是用来传输HTTP脚本的。 但实际上,HTTP协议能够用来传输不论什么形式的数据对象,不论是文本文件还是二进制文件。甚至是流文件都能够通过HTTP协议进行传输。


    (4) HTTP协议是面向一次连接的网络协议
    所谓一次连接是指限制每次连接仅仅处理一个请求。当server 处理完client发来的HTTP请求,并反馈给client端一个HTTP回复后, 即断开连接。 假设client须要再次发送请求,则须要又一次建立连接。  对HTTP协议来说。连接一次,server端仅仅对client 端服务一次。


    (5)HTTP协议 是无状态协议
    所谓无状态,是指协议对于事物处理没有处理能力,即HTTP协议的两次连接之间没有不论什么关系。

    这就意味着,假设client的兴许请求须要用到上一次连接时的信息。那么或者要求client 端重传上次的请求,或者client端保存上次连接请求时的记录。


    在iPhone 开发 C/S client软件时,我们须要对 HTTP协议 有一个全面的了解。 针对HTTP协议以上五种状态,须要设计适用的 C/S 交互协议和数据报文格式。

    也会用到 数据缓存, Cache 技术、 Cookie 技术 等。




  • 相关阅读:
    Emgucv使用中常用函数总结
    设置 omitempty 标签忽略空值字段
    Goland 中定义实时模板
    gorm Update
    Gorm 日期格式错误
    Gorm 多张表的自动迁移
    Sql取出各科分数前三名的学生,Sql各科成绩前三的学生
    美团Leaf分布式ID Leaf安装和使用,美团Leaf snowflake雪花算法模式,美团Leaf segment号段模式
    RocketMQ可靠消息最终一致性解决方案
    Windows安装RocketMQ,RocketMQ Windows安装和使用
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6937621.html
Copyright © 2011-2022 走看看