HTTP 协议

1.HTTP协议是什么?

   http协议是一个应用层的协议。规定了浏览器和服务器之间的通信规范。通常用TCP连接方式

 

2.HTTP 1.0、1.1 连接的方式。

   第一点: 在HTTP 1.0 中,浏览器和服务器使用的是短连接,响应完,立即断开

   第二点:请求的过程:3次握手,请求,响应,断开连接

   第三点:http不保存连接,好处:服务器可以处理更多的连接,但是每次建立连接会降低处理速度

    注:现在主流的版本是HTTP 1.1 ,在HTTP 1.1 中我们使用长连接,一个请求结束后,不断开,继续请求

 

3.HTTP协议的URL(格式)

   http://host[":"port][abs_path]

   说明:

      host: 代表主机域名或IP地址

      port: 端口号,缺省端口80

      abs_path : 请求资源的URL,如果没有,填 "/",通常浏览器会帮我们自动完成

      例如:输入:www.cnblogs.com
                浏览器自动转换成:http://www.cnblogs.com/

 

4.HTTP请求内容

   格式:

    

 

 

   说明:

        HTTP的请求由3部分组成:请求行、请求头、请求体

        SP代表空格、CRLF代表换行

        浏览器必须以这个格式发送请求,服务器才能正常解析和响应

 

   示例:

        

 

 

 

 

5.请求的方式

   第一种:GET 请求获取Request-URI所标识的资源

   第二种:POST 在Request-URI所标识的资源后附加新的数据,常用于提交表单。

   第三种:HEAD 请求获取由Request-URI所标识的资源的响应消息报头

   第四种:PUT 请求服务器存储一个资源,并用Request-URI作为其标识

   第五种:DELETE 请求服务器删除Request-URI所标识的资源

   第六种:TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断

   第七种:CONNECT 保留将来使用

   第八种:OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

  ps:get和post是最常用的方法,简单来说,前者用于获取数据,后者用于提交数据。

 

6.HTTP响应

   格式:

      

 

 

 

    说明:

       第一点:HTTP的响应也是由3个部分组成:响应行、响应头,响应体

       第二点:响应行:status code 表示响应的状态码,description是描述信息

       第三点:同样 SP代表空格、CRLF代表换行

      第四点: 响应必须以这种规范格式发送给浏览器,浏览器才能正常解析并显示

 

    示例:

       

 

 

 

7.响应码

   概述:200段是成功;300段需要对请求做进一步的处理;400段表示客户端请求错误;500段是服务器的错误

   常见的:

         "200" : OK

         "302" : Found 重定向.

         "400" : Bad Request 错误请求,发出错误的不符合Http协议的请求

         "403" : Forbidden 禁止

         "404" : Not Found 未找到。演示访问一个不存在的页面看报文

         "500" : Internal Server Error 服务器内部错误。演示页面抛出异常

         "503" : Service Unavailable。一般是访问人数过多

 

8.HTTP消息报头

   概述:HTTP消息报头分4类:普通报头、请求报头、响应报头、实体报头

             每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的

   普通报头:

        概述:应用于所有请求和响应消息且和请求体与响应体无关的信息就存放在普通报头中

        组成:

                Cache-Control: no-cache (用于指示请求或响应消息不能缓存)

                Date 普通报头域表示消息产生的日期和时间

                Connection: close/keep-alive (是否开启长连接)

     请求报头:

         概述:客户端向服务器端传递请求的附加信息以及客户端自身的信息存放在请求报头

         常用的请求报头:

              1.Accept: text/html,application/xhtml+xml,application/xml; 指定客户端接受哪些类型的信息

              2.Accept-Charset: iso-8859-1,gb2312 客户端接受的字符集 (缺省是任何字符集都可以接受

              3.Accept-Encoding: gzip,deflate,sdch 可接受的内容编码。 (缺省是各种内容编码都可以接受)

              4.Accept-Language: zh-CN,zh 指定语言。(缺省各种语言都可以接受)

              5.Authorization 用于证明客户端有权查看某个资源

              6.Host: www.cnblogs.com 被请求资源的Internet主机和端口号 (缺省端口号:80) 这个报头是必需的

              7.User-Agent: Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.0) 操作系统、浏览器和其它属性

      响应报头:

             概述:响应报头允许服务器传递不能放在状态行中的附加响应信息,

                       以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息

              常用的响应报头:

                       1.Location 响应报头域用于重定向接受者到一个新的位置

                       2.Server:Apache-Coyote/1.1 服务器信息

         实体报头:

              概述:请求和响应消息都可以传送一个实体

              常用的实体报头:

                    1.Content-Encoding: gzip 内容编码

                    2.Content-Language: zh-CN 语言

                    3.Content-Length: 10 实体正文的长度 

                    4.Content-Type: text/html;charset=GB2312 返回数据的类型

                    5.Last-Modified 实体报头域用于指示资源的最后修改日期和时间

                    6.Expires:Thu,15 Sep 2006 16:23:12 GMT 响应过期的日期和时间

 

  学习来源:https://www.cnblogs.com/simple-blog/p/4377647.html

posted @ 2020-09-14 15:48  小窝蜗  阅读(262)  评论(0编辑  收藏  举报