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