1.什么是HTTP协议
思考:
若每个网站都有自己的规则,整个互联网就乱套了,而且用户访问也不是很方便,每个网站都要开发属于自己的客户端软件,致使运营成本变大。
所以,必须有一个统一的规则,让大家发送数据或接受数据有一个依据,于是,HTTP协议由此而来。
1.1什么是通信协议:
通信协议就是通信的双方必须遵守的规则和规定,采用实现规定的通信格式接收信息,就叫做通信协议;
客户端与服务器之间要实现网页内容的传输,则通信的双方必须遵守网页内容的传输协议。
1.2 http协议简介:
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。
浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
说明:使用HTTP协议,每当有新的请求发送时,就会有对应的新响应产 生。协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP协议设计成 如此简单的。可是,随着Web的不断发展,因无状态而导致业务处理变得棘手 的情况增多了。比如,用户登录到一家购物网站,即使他跳转到该站的 其他页面后,也需要能继续保持登录状态。针对这个实例,网站为了能 够掌握是谁送出的请求,需要保存用户的状态。HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能, 于是引入了Cookie技术。有了Cookie再用HTTP协议通信,就可以管 理状态了。有关cookie的详细内容我们后面讲解。
1.3什么是http协议:
- http是超文本传输协议, 规定了浏览器与服务端之间数据交互的格式
- 将浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
- 如果服务端不遵循该协议,那就要自己开发一个客户端,让用户下载的的web应用,通过web应用访问,否则,用户通过浏览器是无法你的web应用的。
2.什么是HTTP请求:
@由于http协议属于客户端和服务器之间的通信协议,因此客户端发起到服务器的消息,就叫做HTTP请求消息:
注意:HTTP请求消息又叫做HTTP请求报文;
2.1 HTTP的请求组成部分:
由请求行(reques line)、请求头部、空行、请求体四部分组成:
检查:
查看浏览器收到的相应数据 : 在网页中鼠标右击检查---->Network---->点击当前网页的网址---->Headers----->查看 Response Headers
@1:请求行
@2:请求头:
关于更多请求头字段的描述,可以查看 MDN 官方文档:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers
请求头部由多行 键/值对 组成,每行的键和值之间用英文的冒号分隔
请求头部用来描述客户端的基本信息,从而把客户端相关的信息告知服务器;
比如:
User-Agent 用来说明当前是什么类型的浏览器;
Content-Type 用来描述发送到服务器的数据格式;
Accept 用来描述客户端能够接收什么类型的返回内容;
Accept-Language 用来描述客户端期望接收哪种人类语言的文本内容;
@3空行:
最后一个请求头字段的后面是一个空行,通知服务器请求头部至此结束。
请求消息中的空行,用来分隔请求头部与请求体。
@4请求体:
** 注意:只有 POST(提交数据) 请求才有请求体,GET 请求没有请求体!**
请求方式:
"get" 请求 : 朝服务端索要数据 (例 : 输入网址获取对应的内容)
"post" 请求 : 朝服务端提交数据 (例 : 登入,输入用户名密码,提交到服务端进行校验)
- 都可以携带额外的参数 :
// GET 提交的数据会放在URL之后,以"?"分割URL和传输数据,参数之间以"&"相连
// POST方法是把提交的数据放在HTTP包的请求体(Body)中. - 提交的数据大小限制 :
// 浏览器对URL长度有限制, 所以GET提交的数据大小有限制
// POST方法没有数据大小限制 - 数据的安全性 :
// GET方式提交数据, 会带来安全问题, 比如一个登录页面, 通过GET方式提交数据时, 用户名和密码将出现在URL上
// 如果页面可以被缓存或者其他人可以访问这台机器, 就可以从历史记录获得该用户的账号和密码
POST方式提交数据, 安全问题比较稳定, 比如一个登录页面, 通过POST方式提交数据时, 用户名和密码将不会出现在URL上
2.2 什么是HTTP响应消息:
服务器收到了客户端发来的HTTP请求后,根据HTTP请求中的动作要求,服务端做出具体的动作,将结果回应给客户端,称为HTTP响应。
简介:响应消息就是服务器接送到客户端发送的信息,然后在传回给客户端的信息,也称为响应报文;
2.2.1HTTP的响应组成部分:
由四部分组成:状态行、响应头部、空行和响应体4个部分组成:
@1:状态行:
由HTTP协议版本、状态码和状态码的描述问嗯三个部分组成:
@2响应头部:
用来描述服务器的基本信息,响应头部由多行键/值对成成,
// 响应首行 : 响应状态码, 协议版本....
// 响应头 : 一大堆 k:v 键值对
// 空行 \r\n : 用来标识作用
// 响应体 : 响应正文, 展示给用户的数据
@3响应状态码说明
简介:HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字有分类的作用。不同的状态码代表不同的含义。
// 用简单的数字来表示一串中文意思(状态或者描述性信息)
1XX : 1开头的,服务端已经接受到你的数据正在处理,你可以继续提交
2XX : 200 OK>>> : 请求成功
3XX : 重定向(当你在访问一个需要登陆之后才能看的页面你会发现会自动跳转到登陆页面)
4XX : 403当前请求不符合条件(没有权限), 404请求资源不存在
5XX : 服务器内部错误,无法完成请求
3.URL 统一资源定位符
统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它
格式:
协议://IP:端口(80)/路径?name=lqz&age=18
?之前的是请求路径,?之后的是请求数据部分
形式 : scheme:[//[user:password@]host[:port]][/]path[?query-string][#anchor]
提示 :
方框内的是可选部分
scheme :协议(例如:http, https, ftp)
user : password@用户的登录名以及密码
host :服务器的IP地址或者域名
port :服务器的端口(如果是走协议默认端口,http 80 or https 443)
path :访问资源的路径
query-string :参数,它通常使用键值对来制定发送给http服务器的数据
anchor :锚(跳转到网页的指定锚点位置)
标签:协议,HTTP,请求,响应,服务器,客户端
From: https://www.cnblogs.com/yxn001/p/16778888.html