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协议:超文本传输协议(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页面或者相关的资源
相关文章推荐
- Ajax快速入门之http协议基础
- 新手入门:了解WWW服务与HTTP协议6
- HTTP协议入门
- HTTP协议入门——1.1版本
- Servlet之Http协议【入门版,初学者必看】
- 了解WWW服务与HTTP协议 【入门与应用】
- HTTP 协议入门
- 黑马第六天之web开发入门和HTTP协议
- HTTP协议 Servlet入门 Servlet工作原理和生命周期 Servlet细节 ServletConfig对象
- HTTP协议从入门到大牛,初识HTTP协议(学习笔记)
- 新手入门:了解WWW服务与HTTP协议5
- 网络基础与协议入门——(1)HTTP协议重点
- Ajax快速入门之http协议基础
- 再温http协议,入门手册。
- javaweb入门(4)-- 详细了解http协议2
- AJAX快速入门之HTTP协议基础
- 新手入门:了解WWW服务与HTTP协议
- 网络基础与协议入门——(1)HTTP协议重点
- javaweb-day04-6&7(javaWeb开发入门 - HTTP协议2)
- HTTP 协议入门