QQ love member No. 3 seed player

know it then do it && APT086&QQ愛安全实验室成员

Web安全扫盲

11 Aug 2019 » 习信息安全系列

[TOC]

1.1 技术架构 CS (Client /Server)

Client指的是客户端,我们每个人的电脑都可以当做一个客户端,日常的一些上网,使用谷歌浏览器搜索东西,打开视频软件浏览视频,打开音乐播放器下载歌曲…这些操作都是要与远方的另一台电脑进行通信的,远方的那台计算机称为服务器(Server)。

1.2 技术架构 BS (Browser / Server)

通过浏览器访问服务器端的都可以称为BS架构

Tips通常的话BS 架构也是在CS架构里面的,但是因为互联网发展迅速,更新换代太快,

所以单独将BS架构这块分了出来。

1.3 HTTP 请求头

协议头说明示例
X-Forwarded-For是一个扩展头。HTTP/1.1(RFC 2616)协议并没有对它的定义,它最开始是由 Squid 这个缓存代理软件引入,用来表示 HTTP 请求端真实 IP。X-Forwarded-For: IP0, IP1, IP2
Accept可接受的响应内容类型(Content-Types)。Accept: text/plain
Accept-Charset可接受的字符集Accept-Charset: utf-8
Accept-Encoding可接受的响应内容的编码方式。Accept-Encoding: gzip, deflate
Accept-Language可接受的响应内容语言列表。Accept-Language: en-US
Accept-Datetime可接受的按照时间来表示的响应内容版本Accept-Datetime: Sat, 26 Dec 2015 17:30:00 GMT
Cookie由之前服务器通过Set-Cookie(见下文)设置的一个HTTP协议CookieCookie: $Version=1; Skin=new;
Content-Length以8进制表示的请求体的长度Content-Length: 348
Content-MD5请求体的内容的二进制 MD5 散列值(数字签名),以 Base64 编码的结果Content-MD5: oD8dH2sgSW50ZWdyaIEd9D==
Content-Type请求体的MIME类型 (用于POST和PUT请求中)Content-Type: application/x-www-form-urlencoded
Date发送该消息的日期和时间(以RFC 7231中定义的”HTTP日期”格式来发送)Date: Dec, 26 Dec 2015 17:30:00 GMT
Expect表示客户端要求服务器做出特定的行为Expect: 100-continue
From发起此请求的用户的邮件地址From: user@itbilu.com
Host表示服务器的域名以及服务器所监听的端口号。如果所请求的端口是对应的服务的标准端口(80),则端口号可以省略。Host: www.itbilu.com:80Host: www.itbilu.com
Origin发起一个针对跨域资源共享的请求(该请求要求服务器在响应中加入一个Access-Control-Allow-Origin的消息头,表示访问控制所允许的来源)。Origin: http://www.itbilu.com
Range表示请求某个实体的一部分,字节偏移以0开始。Range: bytes=500-999
Referer表示浏览器所访问的前一个页面,可以认为是之前访问页面的链接将浏览器带到了当前页面。Referer其实是Referrer这个单词,但RFC制作标准时给拼错了,后来也就将错就错使用Referer了。Referer: http://itbilu.com/nodejs
User-Agent浏览器的身份标识字符串User-Agent: Mozilla/……

1.4 HTTP 响应头

响应头说明示例
Access-Control-Allow-Origin指定哪些网站可以跨域源资源共享Access-Control-Allow-Origin: *
Accept-Patch指定服务器所支持的文档补丁格式Accept-Patch: text/example;charset=utf-8
Accept-Ranges服务器所支持的内容范围Accept-Ranges: bytes
Age响应对象在代理缓存中存在的时间,以秒为单位Age: 12
Allow对于特定资源的有效动作;Allow: GET, HEAD
Cache-Control通知从服务器到客户端内的所有缓存机制,表示它们是否可以缓存这个对象及缓存有效时间。其单位为秒Cache-Control: max-age=3600
Connection针对该连接所预期的选项Connection: close
Content-Disposition对已知MIME类型资源的描述,浏览器可以根据这个响应头决定是对返回资源的动作,如:将其下载或是打开。Content-Disposition: attachment; filename=”fname.ext”
Content-Encoding响应资源所使用的编码类型。Content-Encoding: gzip
Content-Language响应内容所使用的语言Content-Language: zh-cn
Content-Length响应消息体的长度,用8进制字节表示Content-Length: 348
Content-Location所返回的数据的一个候选位置Content-Location: /index.htm
Content-Type当前内容的MIME类型Content-Type: text/html; charset=utf-8
Date此条消息被发送时的日期和时间(以RFC 7231中定义的”HTTP日期”格式来表示)Date: Tue, 15 Nov 1994 08:12:31 GMT
Location用于在进行重定向,或在创建了某个新资源时使用。Location: http://www.itbilu.com/nodejs
Proxy-Authenticate要求在访问代理时提供身份认证信息。Proxy-Authenticate: Basic
Refresh用于重定向,或者当一个新的资源被创建时。默认会在5秒后刷新重定向。Refresh: 5; url=http://itbilu.com
Server服务器的名称Server: nginx/1.6.3
Set-Cookie设置HTTP cookieSet-Cookie: UserID=itbilu; Max-Age=3600; Version=1
Status通用网关接口的响应头字段,用来说明当前HTTP连接的响应状态。Status: 200 OK
TrailerTrailer用户说明传输中分块编码的编码信息Trailer: Max-Forwards
Transfer-Encoding用表示实体传输给用户的编码形式。包括:chunked、compress、 deflate、gzip、identity。Transfer-Encoding: chunked

HTTP协议 详细参考

WEB安全入门心法

1.4 HTTP 请求方法

GET、POST、PUT、COPY、DELETE、OPTIONS…

1.5 HTTP常见状态码

200、301、302、500、404、403


「 转载请声明博客地址及APT086&QQ愛安全实验室 」