首页 » 技术分享 » 一起聊聊HTTP?

一起聊聊HTTP?

 

目录

one

我们该如何发起一个HTTP请求?

two

HTTP协议的请求/响应

HTTP请求方法

HTTP状态码

three

HTTP和HTTPS?

HTTP传输的账号和密码是否为明文?


one

我们该如何发起一个HTTP请求?

在浏览器的地址栏中输入一个URL(统一资源定位符),再按下Enter键,我们就发起了一个HTTP请求,并且可以得到返回结果

在Linux中,我们可以使用系统中的curl命令发起HTTP请求,同样可以返回页面的HTML数据

two

HTTP协议的请求/响应

HTTP(Hyper Text Transfer Protocol)即超文本传输协议,它是一个简单的请求-响应协议基于C/S架构进行通信

HTTP基于客户/服务器模式,且面向连接。它是一种无状态协议,即服务器不保留与客户交易时的任何状态,客户与服务器建立连接,随后客户发送请求,服务器接受并作出应答,然后连接就会关闭。

来看一下HTTP的请求响应过程

HTTP请求包括请求行、请求头、空行和请求正文

HTTP请求的第一行即为请求行,由请求方法,url,协议版本组成

第二行至空白行是请求头,空行后则是请求数据

  • Host:被请求资源的地址和端口号
  • User-Agent:允许客户端将操作系统、浏览器等内容告知服务器
  • Referer:代表当前访问的URL的上一个URL
  • Cookie:表示请求者身份,是一段文本
  • Range:多线程下载会用到,用于请求实体的部分内容
  • Accept:指定客户端接收哪些MIME类型的信息
  • Accept-Charset:指定客户端接收的字符集

HTTP响应包括状态行、响应头、空行和响应正文

第一行为状态行,由协议版本、状态码、消息“ok”组成

第二行至末尾空白行为响应头,之后则是响应正文

  • Server:服务器名称
  • Set-Cookie:服务器向客户端发送的Cookie信息
  • Last-Modified:服务器用来告知浏览器资源最后修改时间
  • Location:服务器告知浏览器需要访问的页面
  • Refresh:定时刷新浏览器
  • Content-Type:向接收方指示实体介质类型
  • Content-Length:实体正文的长度

HTTP请求方法

HTTP状态码

  • 1xx:信息提示,表示请求已被成功接收
  • 2xx:请求被成功接收并处理
  • 3xx:重定向,访问的资源被移动,告知新的资源地址
  • 4xx:客户端错误状态码,客户端请求服务器无法处理或URL并不存在
  • 5xx:服务器错误,可能服务器处理请求时发生错误

常见状态码:

200:客户端请求成功

302:重定向

401:请求未经授权

403:服务器拒绝提供服务

404:访问资源不存在

500:服务器内部出错

three

HTTP和HTTPS?

简单说,有S的是plus版,它在HTTP的基础上增加了数据加密,也就是让信息更加的安全,而HTTP的信息是明文传输

现在很多涉及用户信息的网站都升级成了HTTPS,因为目前HTTPS最直接的作用就是有了SSL加密传输,保护信息安全

然后放几张图看一看,图个乐呵

上面的是天猫的官网用的是https,下面的是随便找的,用的是http,鼠标悬停会出现“连接不安全”这几个大字,一间没有上锁的房子自然没有上了锁的房子安全,好了,接下来,举个栗子

HTTP传输的账号和密码是否为明文?

实验工具:wireshark

测试网站:网上找的,找了好久发现现在很多网站不使用账号密码登陆,而是微信扫码登陆,但还是找到了一个网站

1、wireshark开启后,在页面内输入用户名和密码(我是随便输的) 用户名:example 密码:test

2、wireshark中用http过滤,找到请求方法为POST的包

3、打开POST包查看,可以发现用户名和密码以明文形式呈现

有些网站也会对用户名和密码进行md5这一类的加密,可以去解密网站进行解密https://www.somd5.com/

想象在同一局域网下,你愉快的冲浪,坏人们为所欲为······,你还会走到一个地方就去问这里的WiFi密码吗?

本文有参考张炳帅著--Web安全深度剖析

 

 

 

 

 

 

 

 

转载自原文链接, 如需删除请联系管理员。

原文链接:一起聊聊HTTP?,转载请注明来源!

0