Http基础知识
一.HTTP简介
HTTP,英文全称为HyperText Transfer Protocol。
http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当。[百度百科]
HTTP具有以下特点:
- 基于TCP/IP协议
- 默认端口号是80
- 基于请求/响应模式:一次请求对应一次响应
- 无状态:每一次请求之间相互独立,不能交互数据
HTTP版本:
- 1.0:每一次请求响应都建立新的连接,每一次只能获得一个web资源,短连接,获取资源后断开
- 1.1:复用连接,允许在一个连接上获取多个web资源
二.HTTP请求
当浏览器向服务器请求某个资源时,称为浏览器发送了一个HTTP请求。
HTTP的请求报文分为四个部分:请求行,请求头,请求空行,请求体
-
请求行
1.1 请求行可以分为三部分:请求方法,请求地址,协议/版本。比如
Get /login.html HTTP/1.1
1.2 其中请求方法有7种:GET,POST,HEAD,OPTIONS,DELETE,TRACE,PUT,其中最常用的就是GET和POST。
-
GET:
请求参数在请求行中,请求的url有长度限制,不太安全
-
POST:
请求参数在请求体重,请求的url没有长度限制,相对安全
-
-
请求头
请求头是客户端浏览器告诉服务器的一些信息。
格式为:
请求头名称:请求头值
常用的请求头有:
User-Agent
:浏览器告诉服务器,所使用的的浏览器版本信息(可在服务器获取该请求头信息,解决浏览器兼容性)Referer
:浏览器告诉服务器,当前请求从哪里来(可以用来防盗链和做一些统计工作)
-
请求空行
就是一个空行,用来分割POST请求的请求头和请求体的。
-
请求体
封装POST请求消息的请求参数。
三.HTTP响应
服务器向浏览器回送数据成为一个HTTP响应。
HTTP的响应包括四个部分:响应行,响应头,响应空行,响应体
-
响应行
1.1 一个响应行由三部分组成:协议/版本 响应状态码 状态码描述,比如
HTTP/1.1 200 OK
1.2 响应状态码:是服务器用来告诉客户端浏览器的请求和响应的一个状态
- 状态码都是3位数的
- 状态码分为五类
- 100 ~ 199:服务器接收客户端消息,但没接收完成,要求客户端提交下一次请求才能完成整个过程。
- 200 ~ 299:表示成功,常用200
- 300 ~ 399:表示重定向,常用302(重定向),304(访问缓存)
- 400 ~ 499:表示客户端错误,常用404(请求的资源不存在)
- 500 ~ 499:表示服务器端出错,常用500(服务器内部异常)
-
响应头
2.1 格式为:
头名称:值
2.2 常见的响应头:
Content-Type
:服务器告诉客户端本次响应体的数据格式以及编码格式。Content-disposition
:服务器告诉客户端以什么格式打开响应体数据in-line
:默认值,在当前页面内打开attachment;filename=xxx
:以附件形式打开响应体。(以下载的方式打开数据)
-
响应空行
就是空行
-
响应体
响应的数据