HTTP (HyperText Transfer Protocol, 超文本传输协议)
服务器传输超文本到本地浏览器的传送协议。
基于TCP/IP(http是TCP/IP的子协议(基于)) 通信协议(7层协议)(属于传输层)来传递数据( HTML 文件, 图片文件, 查询结果等 )。
HTTP属于应用层的面向对象的协议 有数据时层层封装 到服务端后层层解开 然后得到数据
浏览器作为 HTTP 客户端通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求。
特点:
1.简单快速 (只需请求方法和路径) 常用请求方法:GET POST HEAD PUT DELETE 等
2.灵活:HTTP允许传输任意类型的数据对象
3.无连接:一次请求一次连接,收到客户的应答后,就断开连接
4.无状态:客户端的每次请求,对于服务端来说,都是一次新的请求
标志网络中的资源
URI:统一资源**标志符 **用来唯一的标识一个资源 不一定是URL还可能是URN
URL:统一资源定位符 是一种具体的URI
组成三要素:协议,IP地址(端口:同一个设备不同的服务),主机资源的具体地址
URN:统一资源命名符
请求/响应 模型(只能从客户端发起)
request 请求
组成(四部分):
1.请求行(请求类型(要访问的资源( /index.html?a=1&b=2 )),空格,URL,空格,协议版本 ,回车)
2.请求头 说明服务器要使用的附加信息。
3.空行
4.请求体 GET请求的参数保存在请求行的 URL 中。即使是没有数据也必须有空行
POST 类型的请求,参数是保存在请求体中。
response响应
组成(四部分):
1.响应行 / 状态行 : 状态码为 200,标志请求成功,状态消息为(OK)。
2.响应头 / 消息报头
3.空行
4.响应体 / 响应正文
状态码:
-
1xx:指示信息–表示请求已接收,继续处理
-
2xx:成功–表示请求已被成功接收、理解、接受
-
3xx:重定向–要完成请求必须进行更进一步的操作
-
4xx:客户端错误–请求有语法错误或请求无法实现
-
5xx:服务器端错误–服务器未能实现合法的请求
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
HTTP事物:
HTTP 事务用来描述一次完整的从请求到响应的过程:
① 到用户发起请求时,首先进行域名解析
② 拿到域名所对应的 IP 地址之后,通过 TCP 协议建立与服务端的通信连接( 三次握手,建立连接
keep-alive 四次挥手)
③ 服务接收到用户请求之后,进行业务处理,随后将请求之后的结果返回给浏览器
④ 浏览器接收到后台的数据