CTF-Web基础知识


HTTP协议

简介

  • HTTP(HyperText Transfer Protocol)叫超文本传输协议,Web服务器和客户端直接进行数据传输的规则,是一个无状态的应用层协议

  • HTTPS(HyperText Transfer Protocol over SecureSocket Layer),以安全为目标的http通道,在http的基础上通过传输加密和身份认证保证了传输过程的安全性

工作原理

访问https://www.baidu.com/index.html后,浏览器和Web服务器执行以下动作:

  1. 浏览器分析超链接中的URL

  2. 浏览器向DNS请求解析www.baidu.com的IP地址

  3. DNS将解析出的IP地址220.181.38.148返回浏览器

  4. 浏览器与服务器建立TCP连接(443端口)

  5. 浏览器请求文档:GET /index.html

  6. 服务器给出响应,将文档index.html发送给浏览器

  7. 释放TCP连接

  8. 浏览器显示index.html中的内容

    image-20210919200613837

持久性连接与非持久性连接

非持久性连接

即浏览器每请求一个Web文档,就创建一个新的连接,当文档传输完毕后,连接就立刻被释放。

  • HTTP 0.9、HTTP 1.0 采用此连接方式

持久性连接

一个连接中,可以进行多次文档的请求和响应。服务器在发送完响应后,并不立即释放连接,浏览器可以使用该连接继续请求其他文档。连接保持的时间可以由双方进行协商。

HTTP报文结构

请求报文

image-20210919201642698

响应报文

image-20210919201817338

HTTP请求方法

  1. GET:请求指定的页面信息,并返回实体主体
  2. POST:向指定资源提交数据进行处理请求(提交表单或上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源建立或已有资源的修改
  3. HEAD:与GET几乎一样,只是响应包中没有响应体,只有响应消息头中的元信息。
  4. PUT:向指定资源位置上传其最新内容
  5. DELETE:请求服务器删除Request-URI所标识的资源
  6. OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向Web服务器发送*的请求来测试服务器的功能性
  7. TRACE:回显服务器收到的请求,主要用于测试或诊断
  8. CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

状态码

状态码 响应类别 含义
1xx 信息状态码 服务器正在处理请求
2xx 成功状态码 请求已正常处理完毕
3xx 重定向状态码 需要进行额外操作完成请求
4xx 客户端错误状态码 客户端原因导致服务器无法处理请求
5xx 服务器错误状态码 服务器原因导致处理请求出错
状态码 含义 状态码 含义
200 表示请求被服务器正常处理(最常见) 307 临时重定向,POST不会变成GET
204 表示请求已成功处理,但是没有内容返回 400 请求报文语法错误或参数错误
206 表示服务器已经完成了部分GET请求 401 需要通过HTTP认证,或认证失败,未授权访问居多
301 永久重定向,资源已永久分配新URL 403 请求资源被拒绝
302 临时重定向,资源已临时分配新URL 404 无法找到请求资源
303 临时重定向,期望使用GET定向获取 500 服务器故障或Web应用故障
304 发送的附带条件请求未满足 503 服务器超负荷或停机维护

HTTP头部

请求头键值

头(Header) 说明
User-Agent 关于浏览器和它平台的信息,如Mozilla4.0
Accept 客户能处理的页面的类型,如text/html
Accept-Charset 客户可以接受的字符集,如Unicode-1-1, UTF-8
Accept-Encoding 客户能处理的页面编码方法,如gzip
Accept-Language 客户能处理的自然语言,如en(英语),zh-cn(简体中文)
Host 服务器的DNS名称。从URL中提取出来,必需
Referer 用户从该URL代表的页面出发访问当前请求的页面
Cookie 将以前设置的Cookie送回服务器,可用来作为会话信息
Date 消息被发送时的日期和时间

响应头键值

头(header) 说明
Date 消息被发送时的日期和时间
Server 关于服务器的信息
Content-Encoding 内容是如何被编码的(如gzip)
Content-Language 页面所使用的自然语言
Content-Length 以字节计算的页面长度
Content-Type 页面的MIME类型
Last-Modified 页面最后被修改的时间和日期,在页面缓存机制中意义重大
Location 指示客户将请求发送给别处,即重定向到另一个URL
Set-Cookie 服务器希望客户保存一个Cookie

URL

简介

全称:Uniform Resource Location,统一资源定位符。从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL

格式

协议://用户名:密码@子域名.域名.顶级域名:端口/目录/文件名.文件后缀?参数=值#标志

相对URL:/目录/文件名.文件后缀?参数=值#标志

例子:http://www.xxx.com:80/test/index.html?boardID=5&ID=23445&page=1#name

URL常见协议

http——超文本传输协议

https——用安全套接字层传送的超文本传输协议

ftp——文件传输协议

mailto——电子邮件地址

ldap——轻型目录访问协议搜索

file——当地电脑活网上分享的文件

news——Usenet新闻组

gopher——Gopher协议

telnet——Telnet协议

URL编码

  • 只能使用ASCII字符集来通过因特网进行发送
  • URL编码使用%其后跟随两位的十六进制数来替换非ASCII自负
  • URL不能包含空格。URL编码通常使用+来替换空格
  • 只有字母和数字[0-9a-zA-Z]、一些特殊符号$-_.+!*'(),[不包含双引号]、以及某些保留字,才可以不经过编码直接用于URL

同源策略

简介

同源策略(SOP)

域名,协议,端口号三者相同

同源策略是浏览器的行为,是为了保护本地的策略不被JS代码获取回来的数据污染。

作用

如果没有同源设计策略,在A网站加载过的js脚本,就能够在没有加载过这个脚本B上的页面随意执行并被读取,这就可能造成页面混乱、被破坏以及数据窃取等不安全的行为


文章作者: ShadowCui
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ShadowCui !