前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web安全学习笔记(四):web通信基础之HTTP

Web安全学习笔记(四):web通信基础之HTTP

作者头像
Power7089
发布2019-07-25 09:54:17
4460
发布2019-07-25 09:54:17
举报

--------------------开始--------------------

0x01:前言

今天没有学习新知识,搞了一天SRC,毫无战果。在这先立个flag,短期内一定要挖到一个补天专属SRC。现在基本都是早起吃完早点,去freebuf看两篇大佬们的挖洞经验,有时能学到东西,大多数连看都看不懂,我觉得还是我的基础不牢。

综合上述原因,我决定将我基础的学习笔记整理进来,让自己加深一下印象,如果正巧你刚入门web安全,希望这些基础知识能帮到你对基本的入门有个概念。再说现在也不会有人看,自己还需要提升好多,也想多学些知识,多分享一些干货,趁现在有精力,那就将web安全的一些最基础的知识,整理出来,随着我学的知识多了,也一定会分享更多干货(这也算一个flag)。

--------------------正题--------------------

今天整理的内容是:web通信基础,其中涉及到url,http的知识,主要还是http,这是web通信的核心,这也是要学web安全我认为最先要学的知识,而且有些地方一定要牢记。

●.URL(Uniform Resource Locator,统一资源定位符)

url大家都不会陌生,访问一个网页最基本的元素。主要记住访问的格式就好了。

✔.详细格式:

①.schema://host[:port#]/path/.../[?query-string][#anchor] ②.协议类型:[//服务器地址[:端口号]][/资源层级UNIX文件路径]文件名[?查询][#片段ID]

✔.协议类型:

http——超文本传输协议资源 https——用安全套接字层传送的超文本传输协议 ftp——文件传输协议 mailto——电子邮件地址 ldap——轻型目录访问协议搜索 file——当地电脑或网上分享的文件 news——Usenet新闻组 gopher——Gopher协议 telnet——Telnet协议

--------------------小分隔--------------------

●HTTP(HyperText Transfer Protocol,超文本传输协议)

HTTP是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。HTTP是WEB通信的基础。

HTTP协议下分为两部分:请求报文和响应报文。

✔.请求报文:

这张图很详细的将请求报文的格式展现了出来,下面是针对具体细节来整理一下。

○.请求方法:

GET:请求指定页面信息,并返回主体,数据插入进URL中进行传输。 POST:向指定资源提交数据进行请求,数据被放在请求数据体中传输。 HEAD:类似GET请求,但只获取头部信息,无响应体。 PUT:将传输数据取代指定文档传输。 DELETE:请求服务器删除指定页面。 CONNECT:与代理服务器可以进行管道方式连接。 OPTIONS:查询针对请求URL指定资源支持的方法。 TRACE:可以对请求消息的传输路径追踪。 MOVE:请求服务器将指定的页面移动到另一个网络地址上。

列举了常见的请求方法,最主要是用到GET,POST两个方法。值得注意的是,GET方法是将查询输入插入到URL中请求,而POST方法则是将查询数据插入到请求数据体中查询。

HTTP请求报文中的URL为请地址的路径。协议版本一般现在都是用的是HTTP 1.1版本。

○.HTTP请求头部:

格式---> 首部字段名:字段值

Hsot:请求资源的服务器 User-Agent:客户端程序的信息 If-Match:比较实体标记(Etag) If-Modified-Since:比较资源更新的时间 Authorization:web认证信息 Accept:用户代理可处理的媒体类型 Accept-Charset:优先的字符集 Accept-Encoding:优先的内容编码 Accept-Language:优先的语言(自然语言)

用Burp抓了一个包,第一个是用GET方法请求的,第二个则是POST方法,两者区别在于请求的方式,POST很明显在将传输数据的时候将数据放在了请求体中,这样相对来说比GET方式安全一些,一般常用于用户登录。

✔.响应报文:

响应报文组成:

第一行:HTTP协议版本 + 状态码 + 原因短语 下面若干行:可选的响应首部信息 空行 剩下的消息:响应的信息

○.响应状态码:

1xx:信息,服务器收到请求,需要请求者继续执行相关操作。 2xx:成功,操作被成功接受并处理。 3xx:重定向,需要进行附加操作以完成请求。 4xx:客户端错误,请求中存在语法错误,服务器无法处理请求。 5xx:服务器错误,服务器在处理请求的过程发生了错误。

•常见的状态码:

200 OK:表示客户端发来的请求在服务器端被正常处理了。 301 Not Modified:表示客户端附带条件的请求,未满足条件。 400 Bad Request:表示请求报文中存在语法错误。 401 Unauthorized:表示发送的请求需要有通过HTTP认证的信息。 403 Forbidden:表明对请求资源的访问被服务器拒绝了。 404 Not Found:服务器无法找到请求的资源。 500 Internal Server Error:表明服务器端在执行请求时发生了错误。 503 Service Unavailable:表明服务器暂时处于超负载或进行停机维护。

详细状态码大全:http://www.runoob.com/http/http-status-codes.html

○.响应头部:

Server:服务器的信息 Location:状态码出现3xx是一般会配合该头部指向重定向的地址。 Set-cookie:服务器想用户发放的表示凭证。 ·HttpOnly:使JavaScript脚本无法获取cookie,防止xss攻击。 X-Frame-Options:控制网站内容在其他web网站的Frame标签内的显示问题。防止点击劫持攻击; ·DENY:拒绝 ·SAMEORGIN:仅同源域名下的页面匹配时许可 X-Powered-By:可以知道web后端语言(但是可以修改)

HTTP基本上了解这些就够了,当然想要了解更多的可以去看一下《图解HTTP》很不错的一本书,言简意赅,比《HTTP权威指南》友爱多了。

---------------遇见问题,解决问题---------------

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白帽学习之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档