1. 程式人生 > >第4章:作為Servlet:請求和響應/4.2 請求

第4章:作為Servlet:請求和響應/4.2 請求

  • HTTP所有方法彙總

  1. GET:獲取伺服器上的資源,如果HTML中沒有指定方法則預設是GET方法
  2. POST:修改伺服器上的資源
  3. HEAD:只要求獲取首部部分,有點像GET,但是沒有響應體
  4. TRACE:要求服務端返回請求訊息
  5. PUT:訊息體放在URL資源上
  6. DELETE:刪除URL上的資源
  7. OPTIONS:獲取HTTP方法列表
  8. CONNECT:要求連線以便建立隧道
  • GET和POST區別

  1. GET的引數附加到URL後面,POST引數在訊息體重
  2. GET引數有位元組限制,POST沒有
  3. GET引數暴露安全性
  4. GET約定不能修改資料,POST可以修改資料
  • 關於冪等性

  1. 概念:就是每次請求等到的結果都是一樣的
  2. 冪等的方法
    1. GET
    2. HEAD
  3. 非冪等的方法
    1. POST
    2. PUT

 

  • 請求頭部獲取

  1. 獲取方法
    //列印頭部
    
               Enumeration<String> enumeration = request.getHeaderNames();
    
               while(enumeration.hasMoreElements()){
    
                    String name = enumeration.nextElement();
    
                    System.out.println("[" + name+"]:");
    
                    Enumeration<String> enumeration2 = request.getHeaders(name);
    
                    while(enumeration2.hasMoreElements()){
    
                         System.out.println("  " + enumeration2.nextElement());
    
                    }
    
               }

     

  2. 列印結果

    [host]:

      127.0.0.1:8081

    [connection]:

      keep-alive

    [cache-control]:

      max-age=0

    [origin]:

      http://127.0.0.1:8081

    [upgrade-insecure-requests]:

      1

    [user-agent]:

      Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

    [content-type]:

      application/x-www-form-urlencoded

    [accept]:

      text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

    [referer]:

      http://127.0.0.1:8081/myWeb/form.html

    [accept-encoding]:

      gzip, deflate, br

    [accept-language]:

      zh-CN,zh;q=0.9

    [content-length]:body長度

      11

  • 請求引數獲取(無論get/post)

  1. 引數形式都是:key=value&key=value&key=value
    //獲取引數名列表和引數對應的值
    
               Enumeration<String> enumeration2 = request.getParameterNames();
    
               while(enumeration2.hasMoreElements()){
    
                    String name = enumeration2.nextElement();
    
                    System.out.println("[" + name+"]:");
    
                    String []values = request.getParameterValues(name);
    
                    for (String string : values) {
    
                         System.out.println(string);
    
                    }
    
                    
    
               }

     

  2. 獲取引數名和引數名對應的值

    [color]:

    light

    [color2]:

    write

》》》》》未完:易學筆記--Servlet和JSP--入門就看這一篇就夠了》》》》》