Http协议
HTTP协议概述
- 什么是HTTP协议?
- HTTP协议的作用是什么?
什么是HTTP协议?
HTTP协议是建立在客户端和服务器之间的一个协议,在客户端和服务器之间需要数据的传输,而传输数据的时候,我们要按照指定的规则或者叫协议去传输数据。
HTTP是建立在TCP/IP协议基础之上的一个网络协议。
HTTP协议属于网络七层结构中最上层(应用层)的协议。
HTTP协议是一个无状态协议(不会记录每次访问时的信息)。
HTTP时一个客户端和服务器端请求和应该的标准(TCP)。客户端时终端用户,服务端时网站。
什么是WEB资源?
通过浏览器可以访问到的所有资源都是web资源
WEB资源分为静态资源和动态资源
• 静态资源的数据是不变的,比如HTML、JPG、AVI。
• 动态资源是通过后台程序展示页面数据的,比如Servlet请求。
HTTP的作用是什么?
为了约束客户端和服务器之间传输web资源时的格式。
HTTP协议版本
注:HTTP/1.0和HTTP/1.1版本之间最大的区别:可以一个连接传输多个web资源(推荐HTTP/1.1版本)。
HTTP协议组成
由两部分组成:请求协议信息和相应协议信息。
HTTP请求协议信息由三部分组成:请求行、请求头、请求体
请求行
它包含四部分(请求方法、URI、协议/版本、回车换行)
GET /user.html HTTP/1.1
请求方法:GET、POST等8种
URI:Uniform Resource Identifier,统一资源标识符。它相当于一个网络资源的名称,只是名称的表现形式是/开头的路径形式。
URL:Uniform Resource Location,统一资源定位符
URL和URI的区别:URL是URI的子集。
协议/版本:表示这次请求是通过那个协议发送的,比如HTTP协议、HTTPS等,使用的HTTP协议一般都是1.1版本的。
请求头
请求头的信息是以key:value形式展现的。
请求头说明:
MIME概述
MEME格式:大类型/小类型,阅读时反过来,比如text/html读成html文本
常见MIME类型如下:
请求体
GET请求的请求体是空的,请求参数都是通过请求行传给服务器端的。
POST请求的请求体可以承载数据,请求头和请求体之间由一个空行作为分割线。
通过表单POST提交的请求体的表现形式主要由三种:
总结
请求协议由三部分组成:行头体
请求首行:请求方法web资源URI http/1.1
请求头:key value方式,不同的请求头配置会告诉服务器端不同的辅助信息。
请求体:承载传输的具体数据,不过请求体中的数据表现形式有三种,这三种都是通过form表单的enctype属性来决定的。
- application/x-www-form-urlencoded:会对中文进行URL编码,并且多个参数以&连接,上传文件只能上传文件名称。
- text/plain:纯文本方式,不会对中文进行URL编码,不会使用&连接多个key-value参数,上传文件只能上传文件名称。
- multipart/form-data:多部件表现形式,这种方式主要可以完成文件上传,可以将上传的文件名和文件内容都传递给服务器端。
MIME:媒体类型,可以表示互联网web资源的扩展名。
text/html ===> .html
text/plain ===> .txt
image/jpeg ===> .jpeg
image/gif ===> .gif
响应协议由那几部分组成?
由三部分组成:状态行、响应头、响应体(相应正文)。
状态码说明
响应头
响应头中的信息也是key value方式展现的。
响应体,也叫响应正文,里面包含服务器发给客户端的web资源信息。响应正文信息返回到浏览器,浏览器需要根据响应头中Content-type设置的MIME类型来打开响应正文信息。