zoukankan      html  css  js  c++  java
  • HTTP协议细节

        一】客服端  -->  服务端
            1》结构
                a)请求行
                b)请求头
                c)请求体:请求的内容,如果没有,就是空白字符
            2》请求(客户端)    
                请求详细:
                    1》请求行
                    GET(请求的方式)    /books/java.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号)
                    2》多行请求头
                    Accept:*/*    (客户端能接受的资源类型)    
                    Accept-Charset:GBK  (客户端支持的编码格式)            
                    Accept-Language:en-us(客户端接受的语言类型:中文、英文等)
                    Connection:Keep-Alive    (发出请求后,维持客户端和服务端的连接关系)
                    Host:localhost:8080                (连接的目标主机和端口号)
                    Referer: http://localhost/links.asp    (来自于哪里)
                    User-Agent:Mozila/4.0        (客户端版本号的名字)
                    Accept-Encoding: gzip, deflate    (客户端能够接收的压缩的数据的类型)
                    If-Modified-Since:Tue,11 Jul 2014 18:23:50 GMT  (缓存的时间)
                    Cookie(客户端暂存服务端的信息)
                    Date:TUe,11 JUl 2013 18:33:34 GMT (客户端请求服务端的时间)
                    3》请求的内容(没有就空白字符)即:请求体
        二】常用的提交方式
                1)GET
                        特点:
                        1》求参数无论多少,都会跟着URL后面传到服务端,并且以明文的方式。    
                        2》GET传递会收到浏览器的限制,有长度的限制。
                        3》GET方式传递信息不安全。
                                    
                2)POST
                        特点:
                        1》请求参数无论多少,都不会跟着URL后面传到服务器,而是以参数形式在求体中传递到服务端
                        2》POST方式传递无大小限制
                        3》GET方式传递信息相对安全
                        4》传送的数据量无限制,还可以用于文件的下载
        三】服务端 ---> 客户端
            1)结构:
                    a、一个状态行
                    b、若干个消息头
                    c、实体内容
            2)详细
                Http/1.1    (相应采用的协议和版本号)  200(状态码)    ok(描述信息)
                Location: http://www.baidu.com(服务端需要让客户端去访问的页面路径)
            Server:apache tomcat(服务端的Web服务器名)
            Content-Encoding: gzip(服务端能够发送的压缩编码类型)
            Content-Length: 80(服务端发送给服务端的压缩后数据的长度)
            Content-Language: zh-cn(服务端发送的语言类型)
            Content-Type: text/html; charset=GB2312(服务端发送的类型及采用的编码方式)
            Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服务端对该资源最后修改的时间)
            Refresh: 1;url=http://www.it315.org(服务端要求客户端1秒钟后,刷新,然后访问指定的页面路径)
            Content-Disposition: attachment; filename=aaa.zip(服务端要求客户端以下载文件的方式打开该文件)
            Transfer-Encoding: chunked(分块传递数据到客户端)  
            Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服务端发送到客户端的暂存数据)
            Expires: -1(服务端禁止客户端缓存页面数据//3种包含下面的2种)
            Cache-Control: no-cache(服务端禁止客户端缓存页面数据)  
            Pragma: no-cache(服务端禁止客户端缓存页面数据)   
            Connection: close/Keep-Alive(维护客户端和服务端的连接关系,1.0用close,1.1用Keep-Alive)  
            Date: Tue, 11 Jul 2000 18:23:51 GMT(服务端响应客户端的时间)
                    
        四】状态码        
                302:重定向。客户端请求服务端,但服务端没有对应的资源,服务端要求客户端再次请求找其它的服务端,即客户端二次请求。
                307:转发。客户端请求服务端,但服务端没有对应的资源,服务端自行请求去找其它的服务段,即客户端一次请求。
                304:客户端请求服务端,但此时客户端缓存中有这个资源,无需再从服务端下载新的内容,此时服务端叫客服端自行找缓存。优化常用的方式。
                404:服务端没有此资源。
                500:客户端请求的资源服务端存在,但在执行的时候出错了。
        总结:
                想让浏览器有何种行为,服务端只能通过响应头的方式来设置
                想让浏览器知道何种行为,浏览器只能通过请求头的方式来请求

  • 相关阅读:
    微信开发css框架资料,
    免费师范生微信服务平台
    SAE+ThinkPHP+微信开发系列教程(一)
    red5学习笔记系列之二red5常见问题解答FAQ
    red5学习笔记系列之一帮助手册的目录
    phpexcel移植到sae上的一个致命bug的解决的办法
    关于学校电脑教室电脑维护二
    瞬间让SignalR 实现在线聊天室~
    delegate 与 event 不得不说的关系~
    动态对象DynamicObject实现让字典书写更优美
  • 原文地址:https://www.cnblogs.com/SkyGood/p/3969560.html
Copyright © 2011-2022 走看看