JavaWeb:Web与HTTP协议简介

时间:2023-03-08 16:36:22
JavaWeb:Web与HTTP协议简介

Web的概念
  • 什么是Web:
    • Web是网络上使用最广泛的分布式应用架构
    • 旨在共享分布在网络上的各个Web服务器中的所有互相连接的信息
  • 三个特征:
    • HTML来表达信息,以及建立信息与信息之间的链接。
    • 用统一资源定位技术URL来实现网络上信息的准确定位
    • 用网络应用层协议HTTP规范浏览器与Web服务器之间的通信过程
  • WEB的发展历程:略。

HTTP协议简介
  • 什么是HTTP协议:
    • HTTP(Hypertext Transfer Protocol,超文本传输协议)。
    • 关于如何在网络上传输HTML文档的协议
    • HTTP协议规定了Web的基本运作过程浏览器与Web服务器之间的通信细节
  • 分层网络体系架构图:
    • JavaWeb:Web与HTTP协议简介
    • HTTP协议位于应用层,建立在TCP/IP的协议之上。
    • HTTP协议采用可靠的TCP连接,默认为80端口。
  • HTTP协议规定了Web的基本运作过程(基于客户/服务器通信模式)
    • JavaWeb:Web与HTTP协议简介
  • HTTP请求格式:
    • POST /Servlet/HelloServlet HTTP/1.1 请求方法 URI HTTP协议
      Host: 127.0.0.1:8080
      User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
      Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3  浏览器所用语言
      Accept-Encoding: gzip, deflate
      Connection: keep-alive
      Content-Type: application/x-www-form-urlencoded
      Content-Length: 59
      username=986836840&password=zy986836840&submit=%B5%C7%C2%BD
  • HTTP响应格式:
    • HTTP/1.1 200 OK  HTTP协议版本 状态代码 对状态代码的描述
      Server:Apache-Coyote/1.1 服务器类型
      Content-Type:text/html  正文类型(MIME)
      Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
      Accept-Encoding:    gzip, deflate
      Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3  浏览器所用语言
      Cache-Control:max-age=0
      Connection:keep-alive
      Host:127.0.0.1:8080
      User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
      <html>  响应正文
          <head>
          <title>Hello World</title>    
          </head>
          <body>
              <form name="loginForm" method="POST" action="Servlet/HelloServlet">
                  <table>
                      <tr>
                          <td><div align="right">UserName</div></td>
                          <td><input type="text" name="username"></td>
                      </tr>
                      <tr>
                          <td><div align="right">PassWord</div></td>
                          <td><input type="password" name="password"></td>
                      </tr>
                      <tr>
                          <td><input type="submit" name="submit" value="登陆"></td>
                          <td><input type="reset" name="reset" value="重置"></td>
                      </tr>
                  </table>
              </form>
          </body>
      </html>