HTTP协议详解

HTTP协议:超文本传输协议(Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议,默认端口80。
HTTPS协议:简单的说就是HTTP的安全版,再HTTP下加入SSL层(Secure Sockets Layer),默认端口443;SSL主要用于web的安全传输协议,再传输层对网络链接进行加密,保障在internet上的数据传输的安全。

HTTP请求过程
主要有两部分组成,客户端请求信息服务器响应信息
HTTP协议详解
举例:
1.当我们在浏览器输入URL http://www.baidu.com的时候,浏览器会发送一个http请求去获取百度的html文件
2.这时候服务器会把Response文件对象返回给浏览器,
3.浏览器会解析Response中的html文件,发现引用了很多文件,如css文件,js文件等等,这时浏览器会自动发送请求去获取图片等文件。
4.当所有文件下载完成后,网页会根据HTML语法结构,显示在浏览器窗口。
HTTP协议详解
HTTP请求信息Request
以请求www.baidu.com为例
HTTP协议详解
1.请求行:
主要包含http请求方法GET、请求地址、http版本HTTP/1.1
2.请求头
第二行开始为请求头
Host :域名
Connection:表示是否需要持久连接 keep-alive
User-Agent :表面请求的程序
Accept :指定客户端能够接收的内容类型,内容类型中的先后次序表示客户端接收的先后次序
3.空行
即使第四部分的请求数据为空,也必须有空行。
4.请求数据
这个例子的请求数据为空。

HTTP响应信息Response
HTTP协议详解
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文
HTTP协议详解

HTTP请求方法:

HTTP协议详解
简单介绍常用的几种如下:
GET:用于获取资源,没有请求体。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PATCH:用于更新服务器数据(局部更新)
DELETE:用于删除指定的数据
PUT:用于更新服务器的数据(数据整体更新)

主要介绍下GET于POST的区别
1.两者应用场景不同:GET是从服务器获取数据;POST是向服务器传输数据
2.请求参数的显示位置不同:GET请求的数据附在URL之后,以?分隔,多个参数用&链接;POST请求数据放在请求体内,以隐式的方式进行发送请求。
3.传输数据的长度:需要注意HTTP协议本身没有对传输数据的长度/大小进行限制,存在的限制主要来源于浏览器和服务器对URL的限制。所以理论上GET通过URL传值会受到限制,而POST不通过URL传值,所以不受限制。
4.安全性:GET的请求数据会出现在URL,比如登录时的用户名和密码;而POST相对GET而言比较安全,请求参数在HTTP的body中。

HTTP响应状态码:
HTTP协议详解
截图来自链接: https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81.
记录几种常见的:
100 Continue 表示请求正在继续
200 ok 请求成功
201 Created 请求被创建完成,同时新的资源被创建
301 Moved 所请求的页面已经转移至新的url
302 Move 所请求的页面已经临时转移至新的url
304 Not Modified 未按预期修改文档,使用缓存
401 Unauthorized 请求未经授权,需要用户验证
403 Forbidden 对被请求页面的访问被禁止
404 Not Found 请求资源不存在
405 Method Not Allowed 请求中指定的方法不被允许
500 Internal Server Error 服务器发生不可预期的错误
503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常