HTTP
HTTP(HyperText Transfer Protocol,超文本传输协议)是访问万维网使用的核心通信协议,也是今天所有Web应用程序使用的通信协议。最初,HTTP只是一个为获取基于文本的静态资源而开发的简单协议。
HTTP请求
所有HTTP消息(请求与响应)中都包含一个或几个单行显示的消息头(header),然后是一
个强制空白行,最后是消息主体(可选)。以下是一个典型
HTTP请求:
GET /auth/488/YourDetails.ashx?uid=129 HTTP/l.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: https://mdsec.net/auth/488/Home.ashx
Accept-Language: zh-cn,zh;q=0.5
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WDW64;
Trident/4.0; SLCC2;. NET CLR 2.0.50727;. NET CLR 3.5.30729; .NET CLR
3.0.30729; .NET4.OC; InfoPath.3; .NET4.OE; FDM;。 NET CLR 1.1.4322)
Accept-Encoding: gzip, deflate
Host: mdsec.net
Connection: Keep-Alive
Cookie: SessionId=5870C7lF3FD4968935CDB6682E545476
HTTP消息头
- cookie与session的区别
Get:从服务器请求获得资源,一种http请求方式。数据通过域名后缀url传送,用户可见,不安全。传输数据量小。
Post:向服务器传送数据,数据通过在请求报文正文里传输,相对比较安全。传输数据量没有限制。
Accept:显示浏览器支持的mime类型,从左到右优先度,根据权重q的大小排序。
Referer:referer后接最开始的网址,从哪个网址往后跳转。
User-agent:发送请求的客户端的操作系统及浏览器等的识别信息。
Host:请求资源的主机名。
Cookie:客户端浏览器请求访问服务器时产生的保存在本地的数据信息,用户名密码等信息。
X_Forwarded_for:XFF可用于伪造ip地址登入,进入对方服务器,绕过防火墙等,ip可以设置变量。
Location:重定向响应(满足一个条件时跳转到另一个页面)
Head:获得报文首部,跟get相似,可以校验get请求的数据是否真实存在。(建议用这种方式,网安不走寻常路~)
Options:显示浏览器支持哪些方式。
Put:从客户端主机上传文件到对方服务器。
-
cookie头里面的secure与HttpOnly项分别代表什么含义(360面试题问过)
Secure:防止信息传输过程中的泄露,限制只有通过https加密传输的网址才能传输cookie到服务器,比较安全。
HttpOnly:设置了这个属性,攻击者无法通过javascrip直接访问用户的cookie。
常见状态码的含义
1XX:信息性状态码
100:Continue,收到了请求的起始部分,客户端应该继续请求。已收到请求消息头.客户端应继续发送主体。请求完成后,再由服务器返回另一个响应。
2XX:成功状态码
200:ok。服务器成功处理了请求。
201:Created(已创建)PUT请求的响应,让服务器创建对象的请求,资源已创建完毕。
3XX: 重定向状态码
重定向状态码用来告诉浏览器客户端,它们访问的资源已被移动, Web服务器发送一个重定向状态码和一个可选的Location Header, 告诉客户端新的资源地址在哪。
浏览器客户端会自动用Location中提供的地址,重新发送新的Request。 这个过程对用户来说是透明的。 301和302 非常相似, 一个是永久转移,一个是临时转移。
301:本状态码将浏览器永久重定向到另外一个在Location消息头中指定的URL。以后客户端应使用新URL替换原始URL。
302:本状态码将浏览器暂时重定向到另外一个在Location消息头中指定的URL.。客户端应在随后的请求中恢复使用原始URL.。
4XX客户端错误状态码
400: Bad Request(坏请求)本状态码表示客户端提交了一个无效(错误)的HTTP请求。
401 :Unauthorized(未授权)服务器在许可请求前要求HTTP进行身份验证。客户端自己要有身份认证。
403:Forbidden(禁止)请求被服务器拒绝,不管是否通过身份验证,禁止任何人访问被请求的资源。
404:Not Found(未找到)本状态码表示所请求的资源并不存在。
5XX 描述服务器错误状态码
500:Internal Server Error(内部服务器错误) 服务器遇到一个错误,使其无法为请求提供服务,应该仔细检查服务器响应的所有内容,了解与错误性质有关的详情。
分别说出=、%、空格、换行、空字节的URL编码
“=”:%3D
“%”:%25
“空格”:%20
“换行”:%0a
“空字节”:%00
编码里面的"、&apos、&、<、&g分别代表什么。
"代表 双引号 ”
&apos代表 单引号 ’
&代表 &
<代表 <
&g:代表 >