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

    1 HTTP协议特点
      1)客户端->服务端(请求request)有三部份
     a)请求行
     b)请求头
     c)请求的内容,如果没有,就是空白字符 
      2)服务端->客户端(响应response)有三部份
     a)响应行
     b)响应头
     c)响应的内容,如果没有,就是空白字符 

    *2 HTTP请求头和响应头含义
      1)请求(客户端->服务端[request])
        GET(请求的方式) /books/java.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号)
        Accept: */*(客户端能接收的资源类型)
        Accept-Language: en-us(客户端接收的语言类型)
        Connection: Keep-Alive(维护客户端和服务端的连接关系)
        Host: localhost:8080(连接的目标主机和端口号)
        Referer: http://localhost/links.asp(从来于哪里)
        User-Agent: Mozilla/4.0(客户端版本号的名字)
        Accept-Encoding: gzip, deflate(客户端能接收的压缩数据的类型)
        If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(缓存时间)
        Cookie(客户端暂存服务端的信息)
        Date: Tue, 11 Jul 2000 18:23:51 GMT(客户端请求服务端的时间)
      2)响应(服务端->客户端[response])
        HTTP/1.1(响应采用的协议和版本号) 200(状态码) OK(描述信息)
        302(客户端请求服务端,但服务端没有对应的资源,服务端要客户端再次请求找其它的服务端,即客户端二次请求,重定向)
        307(客户端请求服务端,但服务端没有对应的资源,服务端自行再次请求找其它的服务端,即客户端一次请求,转发)
        304(客户端请求服务端,此时客户端缓存中有,无需再从服务端下载新的内容,服务端叫客户端自行找缓存,优化)
        500(客户端请求的资源,服务端存在,但在执行时出错)
        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种(服务端禁止客户端缓存页面数据)
        Cache-Control: no-cache(服务端禁止客户端缓存页面数据) 
        Pragma: no-cache(服务端禁止客户端缓存页面数据)  
        Connection: close(1.0)/(1.1)Keep-Alive(维护客户端和服务端的连接关系) 
        Date: Tue, 11 Jul 2000 18:23:51 GMT(服务端响应客户端的时间)
     
      3)总结
        想让浏览器有何种行为,服务端只能通过响应头的方式来设置
        想让服务器知道何种行为,浏览器只能通过请求头的方式来设置
     

      2)常用的提交方式
        a)GET
     特点:请求参数无论多少,都会根着URL后传递到服务端,以明文方式传递
           GET方式传递有大小限制
           GET方式传递信息不安全 

        b)POST
     特点:
           请求参数无论多少,都不会根着URL后传递到服务端,而是以参数形式在请求体中传递到服务端
           POST方式传递无大小限制
           POST方式传递信息相对安全

  • 相关阅读:
    14.会场安排问题(L4)
    图形化调试工具DDD
    sking
    全排列
    DNS
    一种排序
    多边形重心问题
    街区最短路径问题
    Fibonacci数
    python url解析
  • 原文地址:https://www.cnblogs.com/oftenlin/p/2987685.html
Copyright © 2011-2022 走看看