Web 应用程序技术

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:代表 >

你可能感兴趣的:(Web 应用程序技术)