HTTP手记

本文详细介绍了HTTP的工作流程,包括请求建立、发送、响应和关闭TCP连接的过程,以及GET、POST等请求方法。同时,讲解了HTTP的特点和常见状态码,强调了HTTP协议在数据传输时的安全隐患。此外,还对比分析了HTTPS如何通过加密确保web通信的安全性,并概述了HTTPS的主要防护措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTTP手记

HTTP协议:

请求过程: 1
建立tcp链接: web浏览器通过网络和web服务器建立链接,该连接是通过tcp来完成的协议。HTTP是比tcp更高层次的应用层协议,根据规则,只有底层协议建立连接之后才能进行更高层次的连接,因此首先要建立TCP连接,一般TCP连接的端口是80建立TCP连接需要找到连接主机,所以需要先解析域名得到IP再找主机进行三次握手建立TCP连接(两台电脑之间建立一个通信桥梁)
2 web浏览器想web服务器发送请求命令 3 服务器应答 4 web服务器关闭TCP连接:
一般情况下,一旦web服务器发送了请求的数据就要关闭TCP连接,但如果浏览器或者服务器在其头信息加入了connection:keey-alive
则TCP连接在发送后将保持打开状态,于是浏览器可以继续通过相同的连接发送请求。 5 浏览器接受到服务器相应的数据

总结:

浏览器发起请求-> 解析域名得到IP进行TCP连接-> 浏览器发送HTTP请求和头信息发送-> 服务器对浏览器进行应答,响应头信息和浏览器所需的内容-> 关闭TCP连接或保持->浏览器得到数据进行操作

特点:

1.简单 可以简单概括为:用户发起请求-服务器响应-新请求重新发起 每次请求均可为独立行为(无状态)

2.支持b/s模式 只要有浏览器即可工作,用户使用简单,已于操作。从某种意义上说,app也可以视为某种特定内容的浏览器

3.灵活 数据传输、视频播放、交互等,因此适应快速迭代的互联网环境

HTTP请求包:

请求行:请求类型、请求文件路径、HTTP版本 请求头:用来向服务器传递客户端自身的信息以及用户的附加信息
请求正文:包含HTTP传输的信息。当请求方法为get时,请求正文为空,所有内容通过url后面添加参数进行传输,只有当请求为post时,http请求正文中才有信息,通常为web系统自定义的参数,用于实现于服务端的交互。

HTTP相应包;

  	响应行:服务器HTTP协议版本、相应状态码、状态码的文本描述
  	响应头:允许服务器传递不能放在相应行中的附加相应信息,以及关于服务器的信息和对request-uri所表示的资源进行一步访问的信息
  	响应正文:携带当前页面的源码,客户端浏览器会根据相应包中的源码显示出完整的页面;从安全角度来说,对于相应包中的正文内容,直接观看浏览器会更加直观。

请求方法:

GET:向指定的资源发出显示请求,使用get方法应用只用于读取数据。
HEAD:与get一样,向服务器发出指定资源的请求,只不过服务器将不传回资源的文本部分,使用这个方法可以在不必传输全部内容的情况下获取其中“关于该资源的信息”(没懂)
POST:向指定资源提交数据,请求服务器进行处理(例如表单或上传) PUT:向指定资源位置上传其最新内容
DELETE:请求服务器删除request-url所表示的资源 TRACE:回显服务器收到的请求,主要用于测试或诊断
options:这个方法可使服务器传回该资源所支持的所有HTTP请求方法
CONNECT:预留给能够将连接改为管道方式的代理服务器,通常用于ssl加密服务器的连接

注意事项:

方法名称区分大小写。 当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405
当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501

状态码含义和常见状态码:

1xx:表示提示成功,说明请求已被成功接受,继续处理; 2xx:表示 成功,说明请求已被成功接受、理解、接受;
3xx:表示重定向,要完成请求必须进行附加操作以完成处理; 4xx:表示客户端(请求)错误,请求有语法错误或请求无法实现;
5xx:表示服务器错误,服务器处理请求时出错

200:客户端请求成功 301:permanently moved ,页面重定向 400:bad request
客户端请求有语法错误,不能被服务器理解 401:unauthorized 请求未经过授权 403:forbidden
服务器收到请求,但是拒绝提供服务 404:not found ,请求资源不存在或请求无法实现 500:internal server
error 服务器发生不可预期的错误 503:server unavailable 服务器当前不能处理客户端的请求,一段时间后可恢复

安全性分析:

HTTP协议在传输内容时没有采取任何的加密措施,这样可用网络抓包方法来直接获取HTTP包的内容
通过对包内容分析,可得到用户的访问行为,汇总后便知道当前用户的网络东线及规律,目前上网行为管理设备或者各类web应用行为分析软件就是利用这个原理实现的
由于参数为加密,攻击者可以在网络层直接获取当前用户传递参数的信息,并利用爆破等手段获取用户的敏感内容

HTTPS保证web通信安全性:

建立安全的传输通道
身份确认
访问控制
防抵赖

HTTPS特点:

并未改变HTTP协议本身的特性,只是传输过程中利用SSL/TLS技术进行加密,保障传输过程的安全
可以有效保障用户信息不被泄露,避免上网行为设备、代理类设备对用户当前行为的获取,并且有效比秒来自运营商层面的tcp劫持
https主要防护传输过程中的安全,如果在用户端利用burpsuite,则依然可以通过代理技术实现对web访问的借此,因此并不会有效提升服务器的安全性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值