Http请求

来源:互联网 发布:seo关键词优化 编辑:程序博客网 时间:2024/06/03 22:55

    一.浏览器的http请求都发送了什么?

      1.说明:一个完整的HTTP请求包括如下内容:

        一个请求行、若干请求头、以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。

     

      2.一个请求示例

        GET /day09/hello HTTP/1.1            -请求行

        (请求行用于描述客户端的请求方式、请求的资源名称,以及使用的HTTP协议版本号)

        Host: localhost:8080                        --请求头(多个key-value对象)

        (消息头用于描述客户端请求哪台主机,以及客户端的一些环境信息等)

        User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

        Accept-Language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3

        Accept-Encoding: gzip, deflate

        Connection: keep-alive

        ------------------------------------------------ 一个空行

        name=eric&password=123456             --(可选)实体内容

     

     

     二.请求行详解

      1.GET /day09/hello HTTP/1.1 :表示向服务器用GET方式请求day09/hello,使用HTTP/1.1协议,这是发送请求时,必须要有的;

         (1).HTTP1.0和HTTP1.1的区别:

          1)在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。

          2)HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。(常用)

     

     

     

      2.请求方式(get与post):

        (1)常见的请求方式: GET 、 POST、 HEAD、 TRACE、 PUT、 CONNECT 、DELETE、

        (2)常用的请求方式: GET  和 POST        

         (3)GET和POST的区别:

          1)传输特点:

          Get(默认值):是通过URL传递表单值,参数会放在报文头中;

          Post:传递的参数值是隐藏到http报文体中,URL中看不到。在浏览器端每次刷新页面,服务器都会提示浏览器要重新传输请求。

       

       

      2)区别是什么?

        1)get是通过地址栏(URI)会跟上参数数据。以?开头,多个参数之间以&分割。而post通过地址栏看不到参数值,适合传递密码;

        2)get传递的数据量是有限的,不超过1KB,如果要传递大数据量不能用Get。而post则没有这个限制

        3)get浏览器可能会缓存,post一定不会缓存

         

       

      3)如何通过外在表象判断两者?

        只要在地址栏中输入一个网址回车能访问,那么就是GET

       

       

      4)如果Get和Post两者的请求一致?

        那么直接在doGet方法中,添加处理代码。之后在doPost方法中,使用this.doGet()调用相同的处理方式即可。

        总之,两者公用一段代码即可

       

        注意:

           重写doGet或者doPost的时候,不要保留super.doGet()或者super.doPost()。这两个方法会抛出一个异常。


      3.请求资源

         URL:  统一资源定位符。http://localhost:8080/day09/testImg.html。只能定位互联网资源。是URI的子集。

        URI: 统一资源标记符。/day09/hello。用于标记任何资源。可以是本地文件系统,局域网的资源(//192.168.14.10/myweb/index.html),可以是互联网。

     

     

     

    三.请求头详解(Request Headers部分)

      说明:请求头中的参数不一定每次请求都存在

    Accept: text/html,image/*

    浏览器接受的数据类型

    Accept-Charset: ISO-8859-1

    浏览器接受的编码格式

    Accept-Encoding: gzip,compress

    浏览器接受的数据压缩格式

    Accept-Language: en-us,zh

    浏览器接受的语言

    Host: www. bing.org:80

    (必须的)当前请求访问的目标地址(主机:端口)

    If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT

    浏览器最后的缓存时间

    Referer: http: //www.bing.org/index.jsp

    当前请求来自于哪里

    User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

    浏览器类型

    Cookie:name=eric

    浏览器保存的cookie信息

    Connection: close/Keep-Alive

    浏览器跟服务器连接状态。close: 连接关闭  keep-alive:保存连接。

    Date: Tue, 11 Jul 2000 18:23:51 GMT

    请求发出的时间



0 0
原创粉丝点击