您的位置:首页 > 理论基础 > 计算机网络

http协议入门

2016-10-30 21:37 239 查看
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

请求正
4000
文-类型:多部件的/表单-数据;分隔线=---------------------------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页面或者相关的资源
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  http协议 请求 响应