zoukankan      html  css  js  c++  java
  • javaEE(2)_http协议

    一、HTTP协议简介

    1、客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式.dos环境下可直接通过telnet命令连上web服务器,使用HTTP协议发送请求获取某个页面.

    2、HTTP是超文本传输协议,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程,HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点.

    3、HTTP协议的版本有HTTP/1.0、HTTP/1.1,在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源,HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源.可以使用telnet验证,目前都使用http1.1.

    4、一个web页面中,使用img标签引用了三幅图片,当客户端访问服务器中的这个web页面时,客户端总共会访问几次服务器,即向服务器发送了几次HTTP请求.如下的一个页面:

    <head>
    <script type="text/javascript" src="..." />
    <link rel="stylesheet" type="text/css" href="css/reset.css">
    </head>
    <body>
        <img alt="a" src="a.png">
        <img alt="b" src="b.png"/>
    </body>
    </html>

    客户端访问这个页面时总共会向服务器发送5次请求,因为浏览器可以解析这些js,css,图片等资源,解析到这些相应在服务器上的资源时,则又会向服务器发送请求.所以将这些东西合并,减少服务器访问次数,可一定程度上减轻服务器的压力.访问新浪首页时会向服务器发送上百次请求.

    二、HTTP请求

    1、客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求.一个完整的HTTP请求包括如下内容:一个请求行、若干消息头、以及实体内容,请求头和实体内容之间有一个空行,如下所示 :

    2、HTTP请求的细节——请求行

    请求行中的GET称之为请求方式,请求方式目前主要有GET、 POST,用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式或ajax实现.不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:GET /mail/1.html?name=abc&password=xyz HTTP/1.1,GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K.如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制.

    3、HTTP请求的细节——消息头

    例:

    主要消息头含义如下:

    ps:1.accept */*代表可以接受任何数据.2.if-Modified-Since,服务器接受到这个时间后会和要访问资源的最后跟新时间比较,如果大于资源最后跟新时间就会拿客户端的缓冲而不会去访问服务器,返回状态码304或307,如果小于资源的跟新时间才会访问web资源,返回状态码200.

    二、HTTP响应

    1、一个HTTP响应代表服务器向客户端回送的数据,它包括:一个状态行、若干消息头、以及实体内容 .

    例:

    2、HTTP响应的细节——状态行

    格式: HTTP版本号 状态码 原因叙述<CRLF>,举例:HTTP/1.1 200 OK,状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数.响应状态码分为5类,如下所示:

    ps:100-199一般很少使用,307和304表示请求的资源是从缓冲拿的,404表示访问的web资源不存在,必定是客户端的问题,403表示没有访问资源的权限.

    3、HTTP响应细节——常用响应头

    服务器通过响应头可以完全控制浏览器行为,例:

    含义如下:

    HTTP实用头字段-range实现断点续传功能,略.

    可编写servlet程序,设置响应头,来具体查看浏览器的行为。

  • 相关阅读:
    rabbitMq(2)之“Work”模式
    rabbitmq(1)之"Hello World"模式
    Maven的实用基础命令
    RabbitMq(3)之“发布/订阅”模式
    mac rabbitmq安装以及入门
    Mac 安装Homebrew
    多线程通讯之管道
    CentOS中防火墙之iptables
    CentOS中防火墙之Firewall
    Redis的简介
  • 原文地址:https://www.cnblogs.com/wangweiNB/p/4895087.html
Copyright © 2011-2022 走看看