HTTP协议总结

 

1、请求报文 Request

请求报文包括四个部分:请求行、请求头、请求空行、请求体

(1)请求行

   格式:  请求方法    请求URL   请求协议/版本   (中间用空格隔开)

   例如:  GET  /index.html  HTTP/1.1

            其中请求方法包括:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT

            1)GET

     最常见的一种请求方式,当客户端要从服务器中读取文档时,当点击网页上的链接或者通过在浏览器的地    址栏输入网址来浏览网页的,使用的都是GET方式。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号("?")代表URL的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind,这样通过GET方式传递的数据直接表示在地址中。

     显然,这种方式不适合传送私密数据。另外,由于不同的浏览器对地址的字符限制也有所不同,一般最多只能识别1024个字符,所以如果需要传送大量数据的时候,也不适合使用GET方式

                GET请求方式满足幂等性
                         

            2)POST

                 POST方法将请求参数封装在HTTP请求体中,以名称=值的形式出现,可以传输大量数据,这样POST方式对传送的数据大小没有限制,而且也不会显示在URL中。

                 POST请求方式不满足幂等性

 

            3)HEAD

                 HEAD和GET一样,用于查询数据,只不过服务端接受到HEAD请求后只返回响应头,而不会发送响应体。当我们只需要查看某个页面的状态的时候,使用HEAD是非常高效的,因为在传输的过程中省去了页面内容。

            4)TRACE

                 如果用了代理服务器上网,使用TRACE请求可以查看代理是否修改了HTTP请求

            5)OPTIONS

                 用来查看服务器允许的请求方法有哪些,服务器会在响应头里返回支持的访问方式(关键字:allow)。也就是说,服务器不一定支持全部的请求方法

(2)请求头

               请求头部通知服务器有关于客户端请求的信息

               格式:关键字:值   (关键字和值之间用:隔开)

               例如:user-agent : Mozilla/5.0(Windows NT 6.1;rv:15.0) Firefox/15.0          // 告诉服务器我的浏览器版本

                          host : localhost           // 请求的主机名

                          content-length : 2         // 请求体的数据长度(GET方式没有)

                          content-type : application/x-www-form-urlencode          // 请求体的数据格式

(3)请求空行

               用一个空行标识请求头的结束

(4)请求体

               格式:参数名 = 参数值    (参数名和参数值之间用=隔开)

               例如:username = 张三

                          age = 23

               请求体不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求体相关的最常使用的请求头是Content-TypeContent-Length

 

2、响应报文 Response

        响应报文也由四部分组成:响应行、响应头、响应空行、响应体

(1)响应行

   格式:  协议版本  状态码  状态描述   (中间用空格隔开)

   例如:  HTTP/1.1  200  OK

           状态码的分类:

             常见的状态码及状态描述:

             200    OK        //客户端发过来的数据被正常处理

             204    Not Content        //正常响应,没有实体

             301    Moved Permanently        //永久重定向

             302    Found        //临时重定向

             303    See Other       //和302类似,但必须用GET方法

             304    Not Modified         //状态未改变,对于图片这样的大文件,如果每次请求都在响应体里返回很耗费资源,所  以如果在浏览器有对应的缓存,且内容没有改变,则响应体里就不放对应的数据了,这个时候就会用这个状态码返回

             400    Bad Request        //请求报文语法错误

             401    unauthorized       //需要认证

             403    Forbidden        //服务器拒绝访问对应的资源

             404    Not Found        //服务器上无法找到资源

             500    Internal Server Error        //服务器故障

             503    Service Unavailable        //服务器处于超负载或正在停机维护

        (2)响应头

               格式:关键字:值   (关键字和值之间用:隔开)

               例如:Content-Encoding: gzip         //响应体的编码格式

                          Content-Type: text/html;charset=utf-8        //响应体的数据类型

        (3)响应空行

               用一个空行标识响应头的结束

        (4)响应体

               响应的具体内容,网页或图片文件等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值