JavaWeb学习(6)

Posted by Csming on 2016-10-17

HTTP简介

  • Web浏览器与服务器之间的一问一答的交互过程必须遵循一定的规则,即HTTP协议
  • HTTP协议是超文本传输协议,他是TCP/IP协议集中的一个应用层协议
  • 用于定义web浏览器与web服务器之间交互数据的过程以及数据本身的格式
  • HTTP协议的版本有http/1.0、http/1.1、http-ng

HTTP会话方式

  • 建立连接、发送请求消息、回送响应消息、关闭连接
    会话方式
  • 浏览器与web服务器的链接过程是短暂的,每次链接至处理一个请求和相应。
  • 对每一个页面的访问,浏览器与web服务器都要建立一次单独的连接
  • 浏览器到web服务器之间的所有通讯都是完全独立分开的请求和响应对
    请求和响应对

HTTP请求消息

  • ** 请求消息的结构
  • 一个请求行,若干消息头,以及实体内容,其中一些消息头和实体内容是可选的,消息头和实体内容之间要用空行隔开
    GET /books/java.html HTTP/1.1 //请求行
    Accept: “/” //多个消息头
    Accept-Language: en-us
    Connection:Keep-Alive
    Host:localhost
    Referer:http://localhost/links.asp
    User-Agent: Mozilla/4.0
    Accept-Encoding: gzip,deflate
    //空行

HTTP响应信息

  • 响应信息的结构
  • 一个状态行、若干消息头、以及实体内容,其中一些消息头和实体内容是可选的,消息头和实体内容之间要空行隔开
    HTTP/1.1 200 OK //状态行
    Server:Microsoft-IIS/5.0 //多个消息头
    Date:Thu, 13 Jul 2000 03:46:53 GMT
    Content-Length:2291
    Content-Type: text/html
    Cache-control:private
    //一个空行
    //实体内容

HTTP消息的其他细节

  • 相应信息的实体内容就是网页文件的内容,也就是在浏览器中使用查看源文件方式所看到的内容
  • 一个使用GET方式的请求消息中不能包含实体内容,只有使用POST、PUT、DELETE方式的请求消息中才可以包含实体内容

GET和POST

  • GET:请求参数直接附在URL后,用?连接,一个一个键值对
  • POST请求信息在请求体中,POST的数据量更大
  • 表单基本使用POST请求
    1
    2
    3
    4
    5
    <form action="LoginServlet" method="get" >
    user:<input type="text" name="user"/>
    password:<input type="password" name="password"/>
    <input type="submit" value="Submit"/>
    </form>
GET
  • 在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出HTTP请求消息的方式为GET
  • 如果网页中的
    表单的method属性被设置为GET,浏览器提交这个表单时生成的HTTP请求消息的请求方式也为GET
  • 使用GET请求方式给WEB服务器传递参数的格式:http://www.lampbrother.net/counter.jsp?name=lc&password=123
  • 使用GET方式传送的数据量一般控制在1KB以下
POST
  • 主要用于向WEB服务器端程序提交form表单中的数据:form表单中的method置为POST

  • POST方式将各个表单字段元素及其数据作为HTTP消息的实体内容发送给WEB服务器,传递的数据量比使用GET方式的数据量大得多
    POST /counter.jsp HTTP/1.1
    referer: http://localhost:8080/Register.html
    content-type: application/x-www-form-urlencoded
    host: localhost:8080
    content-length:43

    name=csming&password=123