HTTP协议:
超文本传输协议
规定了服务器与浏览器之间消息的传输格式
四大特性:
1.基于TCP/IP协议之上的作用在应用层之上的协议
2.基于请求响应
请求必定由客户端发出,而服务器回复响应
3.无状态保存
HTTP协议自身不具备保存之间发送过的请求或者响应的功能
#TODO:那如何保存之前的登录状态呢?难道进入了一个网站之后需要反复登录么?现实是不需要的,那么这个是怎么实现的呢
针对这个实例,网站为了能够掌握是谁送出的请求,需要保存用户的状态,HTTP/1.1虽然是无状态协议,
但是为了实现期望的保持状态的功能,于是引入了Cookie技术,有了Cookie再用http协议通信,就可以管理状态了
有关Cookie的技术后面再做详细介绍
如果不设置成无状态保存而一直在那里连着,那样就太耗费服务器的资源了
4.无连接
无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并受到客户的应答之后,即断开连接,采用这种方式可以节省传输时间
数据格式之请求:
请求头
请求首行(一大堆的k,v键值对)
(空行 /r/n)
请求体(仅仅只有post请求.这个请求体中才有数据,get请求中请求体中是空的,没有数据)
数据格式之请求:
响应头
响应首行(一大堆的k,v键值对)
(空行 /r/n)
响应体(仅仅只有post请求.这个请求体中才有数据,get请求中请求体中是空的,没有数据)
# """
# 请求头
# GET / HTTP/1.1
# 请求首行
# Host: 127.0.0.1:8080
# Connection: keep-alive
# Cache-Control: max-age=0
# Upgrade-Insecure-Requests: 1
# User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
# Sec-Fetch-Mode: navigate
# Sec-Fetch-User: ?1
# Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
# Sec-Fetch-Site: none
# Accept-Encoding: gzip, deflate, br
# Accept-Language: zh-CN,zh;q=0.9
#
# 请求体
#
# """
响应状态码:
10X:服务端已经接受到你的数据,正在处理,你可以继续提交数据
20X:请求成功
30X:重定向
40X:请求错误,例如404请求资源不存在
50X:内部服务器错误
HTTP请求协议与相应协议
HTTP协议包含友浏览器发送数据到服务器需要遵循的请求协议和服务器发送数据到浏览器
需要遵循的请求协议,用于HTTP协议交互的信被称为HTTP报文,请求端(客户端)的HTTP
报文,称之为请求报文,响应端(服务器端)的叫做响应报文HTTP报文本省是多行数据构成的字文本
请求方式:get请求与post 请求
GET提交的数据会放在url之后,以?分割URL和传输数据,参数之间以&相连,而且这种拼接数据也不是很安全
POST请求是将数据放在请求体里面的,相对安全一些,而且可以放的数据也更长一些
Post方法是将要提交的数据放在http包的请求体中
GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而post方法提交的数据是没有限制
GET与post请求在服务器端获取请求数据方式不同
响应状态码
状态码的作用是客户端向服务端发送数据时,返回的请求结果,借助状态码,用户可以知道服务器端是
正常处理请求了还是出现了故障,
1XX 正在处理:信息性 接收的请求正在处理
2XX 处理成功 请求正常处理完毕
3XX 重定向 需要进行附加操作以完成请求
4XX 客户端错误 服务器无法处理请求
5XX 服务器错误 服务器处理请求错误
URL(统一资源定位符)简介:
统一资源定位符是对可以从互联网上得到的资源和访问方法的一种简介的表示
互联网上的每个文件都有一个唯一的URL,它包含的信息之处文件的位置以及浏览器应该怎么处理它