zoukankan      html  css  js  c++  java
  • Http请求与响应格式

    原文:http://www.cnblogs.com/z941030/p/4699779.html

    Http协议对浏览器发出的Request格式以及对Web服务器发出的Response格式有具体的规定。

    请求部分由三部分组成:

    •  Requset line:请求行,位于第一行
    •  Request headers:请求消息头,从第二行开始至第一个空行结束
    •  Request body:请求正文,从第一个空行之后的都是正文

    响应部分也由三部分组成:

    •  Response line:响应行,位于第一行
    •  Response headers:响应消息头,从第二行开始至第一个空行结束
    •  Response body:响应正文,从第一个空行之后的都是正文

    一、Http请求

    Http请求具体格式如下:

    Method Path-to-resource Http/Version-number

    User-agent 浏览器的类型

    Accept 浏览器接受的MIME类型

    Accept language 用户选择的接受语言

    Accept-charset 用户首选的编码字符集

    ……

               空行

                        Option Request Body

    ①请求行:

    1.Method为请求方式,包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE,常用的是GET和POST

    GET的特点:默认的请求方式。
    当请求的资源路径为/SdustExam/Login.jsp?username=admin&password=123456时,GET方式会把表单的请求的数据放在请求的URI的后面,?username=admin&password=123456,这样会暴露数据,而且请求行长度有限。

    POST的特点(经常使用的):借助HTML中的form表单。<form action="Login.jsp" method="post">请求参数出现在正文部分,长度木有限制,相对安全。

    2.Path-to-resource :请求的资源的URI。例如/SdustExam/Login.jsp

    3.Http/Version-number:客户端使用的协议的版本,有HTTP/1.0和HTTP/1.1。

    HTTP/1.0:特点:每次请求服务器上的资源都要建立新的连接,响应完毕后都会关闭连接。是无状态的协议。
    HTTP/1.1:特点:在一次TCP/IP连接的基础上可以发出多次请求和得到多次的响应。比1.0多了一些请求和响应头。

    ②请求消息头

    向服务器传递附加信息

    Accept:通知服务器,浏览器可以接受的MIME类型。(文件系统中用文件扩展名区分数据的类型。网络上用MIME类型来区分数据类型。Tomcatconfweb.xml)
    MIME类型名称:大类型/小类型 如text/html、text/css等等
    Accept-Charset:通知服务器,浏览器支持的字符集,如gbk,utf-8
    Accept-Encoding:通知服务器,浏览器能够解码的数据压缩方式。比如:gzip
    Accept-language:通知服务器,所希望的语言
    Host:请求的主机和端口
    Referer:是一个URL地址。取值是当前页面之前的那个页面地址的。防盗链用
    Content-Type:通知服务器,请求正文的MIME类型。取值:application/x-www-form-urlencoded默认值,对应的是form表单的enctype属性
    If-Modified-Since:通知服务器,缓存的文件的最后修改时间。
    User-Agent:通知服务器,浏览器类型.
    Content-Length:表示请求消息正文的长度 
    Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep -Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接 )
    Cookie:这是最重要的请求头信息之一(会话有关)

    二、http响应

    http响应具体格式如下:

      Http/Version-number  Statuscode  message

    Server 服务器的类型信息

    Content-type 响应的MIME类型信息

    Content-length 被包含在相应类型中的字符数量

    ……

               空行

    Option Response Body

    ①响应行:

    Http/Version-number:服务器用的协议版本
    Statuscode:响应码。代表服务器处理的结果的一种表示,常用的响应码有:
          200:正常
          302/307:重定向
          304:服务器的资源没有被修改
          404:请求的资源不存在
          500:服务器报错了
    message:响应码描述。例如200的描述为OK

    ②响应消息头:

    Location:通知客户端,指示新的资源的位置(结合302/307来用。请求重定向)
    Server:通知客户端,服务器的类型
    Content-Encoding:通知客户端,响应正文的压缩编码方式。常用的是gzip。
    Content-Length:通知客户端响应正文的数据大小
    Content-Type:通知客户端响应正文的MIME类型
    Refresh:让浏览器自动刷新。取值为整数(刷新的时间间隔,单位是秒)
         Refresh:3
         Refresh:3;URL=其他资源的URI
    Content-Disposition:通知客户端,以下载的方式打开资源。
    Content-Disposition:attachment;filename=1.jpg
    Set-Cookie:SS=Q0=5Lb_nQ; path=/search服务器端发送的Cookie(会话有关)
    Expires: -1 网页的有效时间。单位是毫秒,-1为通知客户端不要缓存
    Cache-Control: no-cache (1.1)  通知客户端不要缓存
    Pragma: no-cache (1.0) 通知客户端不要缓存

  • 相关阅读:
    AD设置PCB等比例打印
    leetcode------Word Search
    leetcode------Subsets II
    leetcode------Subsets
    leetcode------Palindrome Partitioning
    leetcode------Combinations
    leetcode------Binary Tree Zigzag Level Order Traversal
    leetcode------Populating Next Right Pointers in Each Node II
    leetcode------Populating Next Right Pointers in Each Node
    leetcode------Remove Duplicates from Sorted Array II
  • 原文地址:https://www.cnblogs.com/worldtraveler/p/4701375.html
Copyright © 2011-2022 走看看