http协议入门

1、http协议是什么?  有什么作用?

HTTP协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议以www开头的,必定遵守http协议
有以下三种特性:
超文本:  超文本效果,超文本内容
传输:双向的传输            请求-响应    一问一答机制
协议:格式、规则、规范
其中为了进行请求和响应 超文本信息的传递,需要规定 信息格式。  就是http协议中的请求和响应
http协议:
    http请求协议:   规定了   浏览器向服务器传递信息  的格式是什么样的?
    http响应协议:   规定了   服务器向浏览器传递信息  的格式是什么样的?

    作用:就是为了 超文本信息传递 更为有效

http请求协议作用:
            规范      浏览器把信息传递给服务器的   信息的格式。


2.http协议:

协议由三部分组成:行、头、体,下面分请求和响应两部分,其中有分别分为三部分进行论述
2.1请求:

----------------------------------------

2.1.1、请求行(请求首行)
永远位于请求的第一行,其中又有get和post两种方式

请求方式 请求路径 协议名/版本号
GET /web09/index.html HTTP/1.1


特殊:get请求方式 传递的参数列表是放在  请求行上
GET /web09/index.html?username=nihao HTTP/1.1



2.1.1.1http协议版本:
    1.1:有状态的协议。   请求第一次,连接一次,响应一次,连接保持。短时间内请求第二次,使用上次连接,响应一次,连接保持。       一段时间不连接,连接超时,连接断掉。(感觉类似于线程池和连接池)

    1.0: 无状态的协议。   请求一次,连接一次,响应一次,断掉连接

注意:请求行传递的信息是非常有限的。

----------------------------------------------------------------------------

2.1.2请求头(请求消息头)
从请求的第二行开始的以key:value键值对形式进行储存,其中key都是http协议预定义好。
常见的请求头有:
Accept:text/html, application/xhtml+xml, */*
                    浏览器告诉服务器,  我浏览器可以接受并解析的MIME类型。
                    MIME类型:为了更方便地在网络上进行信息传递;
                                                为了更方便地解析打开文件。
                                                更为具体的文件扩展名


                                                写法:大类型/小类型     读法:从后向前读

                            例如:饮料/脉动  一种叫脉动的饮料


                            例如:image/jpeg    ------>*.jpg
                                            text/html     ------->*.html
                                            text/css      ------->*.css
                                            text/javascript  ----->*.js

                  其中后面的叫做文件的扩展名:  就是为了更为方便保存文件到硬盘。并且更方便去打开并解析对应文件
                            例如:饮料




Accept-Language:zh-CN
                        浏览器告诉服务器,   我浏览器可以接受并解析的语种




User-Agent:    Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko
                        浏览器告诉服务器,   我浏览器的品牌及内核版本



Accept-Encoding:gzip, deflate                
                        浏览器告诉服务器,   我浏览器能够解码的信息类型

                        为了网络传递方便,服务器传递信息给浏览器之前,进行了一次数据的压缩。
                        浏览器拿到压缩的信息,必须进行解压缩才能查看




Referer: 标明了请求的来源

                    例如:直接在地址栏上输入某个地址,请求,没有referer
                                    如果从link.html上超链接连接到index.html,请求中有referer
                                    
                                    Referer:http://localhost:8080/web09/link.html


                           用于 防盗链,信息统计


---------------------------------------------------------
请求体(请求正文)

2.21、何时有请求体?
        get方式没有请求体

        post方式才有请求体
                                    form method="post"


2.22、请求体的作用?
        传递 表单参数列表


2.2.3、请求体有几种表现形式?
        3种。

        根据<form enctype>      enctype:表单数据在提交前应该如何编码

------------------------------------------------
        application/x-www-form-urlencoded  在提交数据前对表单数据中的中文及特殊符号进行URL编码(默认)
        
        空格----》+号
        中文、特殊符号----》你好----》%E4%BD%A0%E5%A5%BD


        请求体:username=%E4%BD%A0%E5%A5%BD&name=+++

        适用于普通表单数据提交.   不能用于文件上传
        
------------------------------------------------

 
        text/plain     未修饰的文本。
        使用的是MIME类型,中间是/,左边是打的类型,右边是小的类型


        请求体:username=你好
                             name=   


        内网项目。几乎不用了      效率很高,数据容易丢失。       不能用于文件上传


                                                                            数据的传递必然经过编码。   字符---》字节      
                                                                            数据的使用必然经过解码。    字节----》字符

                                                                            utf-8编码,   ios8859-1解     ??

-------------------------------------------------

        multipart/form-data       多部件的/表单-数据

        一个表单输入项就是一个部件


        适用于文件上传




Content-Type:multipart/form-data; boundary=---------------------------7e032f381057c

请求正文-类型:多部件的/表单-数据;分隔线=---------------------------7e032f381057c



浣犲ソ:乱码。   编码解码不一致导致乱码。  UTF-8编码,GBK解码

        请求体:
-----------------------------7e032f381057c
Content-Disposition: form-data; name="username"

浣犲ソ
-----------------------------7e032f381057c
Content-Disposition: form-data; name="name"

   
-----------------------------7e032f381057c
Content-Disposition: form-data; name="photo"; filename="C:\Users\xps13\Desktop\hehehehehhe.png"
Content-Type: image/png

<二进制文件数据未显示>
---------------------------7e032f381057c--

2.3.响应

http响应协议:
                规定       服务器发送给浏览器信息    的格式
2.3.1响应行(响应首行)
永远位于响应的第一行

格式:协议名/版本号 响应状态码 响应状态码描述
HTTP/1.1 200 OK


响应状态码:

                1xx:   开发中禁止传递。 请求收到了,就是没有响应
                2xx:   请求正常收到,并且服务器响应成功了。
                                        200请求并响应成功
                3xx:         请求和响应成功,但是还有请求没完成
                                        302/307  重定向
                                        304   执行缓存内容,服务器就不会发新内容
                                                频繁进行响应信息的传递,会影响服务器系统资源,消耗网络流量
                4xx:            客户端请求 错误

                                        404 客户端请求路径错误
                5xx:    服务器端   错误
                                        500 服务器端有异常

2.3.2响应头(响应消息头)

key:value

常用:
Location    指定重定向的路径,需要与状态码302/307配合使用,完成重定向跳转。

2.3.3响应体(响应正文)

就是在浏览器页面上看到的内容,其实就是响应体的内容。例如整个html页面或者相关的资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值