黑客攻防技术宝典-Web实战篇——第三章、Web应用程序技术——HTTP(一)

第三章、Web应用程序技术——HTTP(一)

上章提到,这一章包含了web的基础知识,重点为

  • HTTP
  • web功能
  • 编码方案

如果各位有web经验者提出建议,感激不尽。

3.1、HTTP

HTTP(HyberText Transfer Protocol),超文本传输协议。它是访问万维网核心通信协议。最初 用来传输静态文档。后来经过扩展利用,支持web应用程序这种复杂的传输。

HTTP是用于传输HTML文档的==应用层==协议,它遵循 客户端-服务器 模型:

  1. ==客户端==与服务器==建立连接==
  2. ==客户端==向服务器==发出请求==
  3. ==服务器==响应请求==返回数据==
  4. ==客户端==与服务器==断开连接==


    C/S模型

此外,HTTP 是无状态协议,这意味着服务器不会在两个请求之间保留任何数据。也就是说请求之间完全独立。
这也是第一章中为什么要用session(会话)和cookie的原因。因为无状态的http协议无法保存用户信息之类的数据。

HTTP消息(报文)

HTTP消息分为两种,请求与响应。每个消息组成:

  • 消息头(header)(一个消息头是其中的一行或多行)
  • 空行
  • 消息主体(可选)

HTTP请求

HTTP请求举例如下:

GET /item/http HTTP/1.1         //请求方法  URL请求资源名称  HTTP版本号
Host: baike.baidu.com           //请求完整URL的主机名
Connection: keep-alive          
Cache-Control: max-age=0    
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36   //客户端系统的概况,浏览器内核等等
Sec-Fetch-User: ?1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Referer: https://baike.baidu.com/item/http/243074?fr=aladdin
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie:                             //提交浏览器发给用户的参数

HTTP响应

HTTP响应举例如下:

HTTP/1.1 200 OK                     //HTTP版本号  数字状态码  响应状态
Bdpagetype: 3
Bdqid: 0xde99cb9f00006bf2
Cache-Control: private
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8     //消息主体的文档类型
Cxy_all: 
Cxy_ex: 
Date: Sun, 12 Jan 2020 07:38:52 GMT
Is_status: 0
P3p: CP=" OTI DSP COR IVA OUR IND COM "
Server: BWS/1.1                     //指明服务器软件,有时还有服务器所安装模块和系统
Set-Cookie:                         //向浏览器发送一个cookie,在随后的请求中会返回
Set-Cookie: 
Set-Cookie: 
Set-Cookie: 
Set-Cookie: 
Set-Cookie: 
Strict-Transport-Security: max-age=172800
Traceid: 
Vary: Accept-Encoding
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked

HTTP请求方法

最常用的两种请求方法:GET、POST

==GET方法==(读取):获取请求的资源,无论获取多少遍都对资源没有副作用。GET请求没有消息主体,因此在消息头后的空白行是没有其他数据
==POST方法==:执行操作,向服务器发送含参数的消息主体,这会对请求的资源产生副作用。比如点击下单操作,服务器将返回下单之后的内容。

其他请求方法:

HEAD:这个请求的功能与GET请求相似,不同之处在于服务器不会再其响应中返回消息主体,因此,这种方法可用于检查某一资源在向其提交GET请求前是否存在。
TRACE:在返回响应主体中包含请求消息的内容。用于检测是否有代理。
OPTION:用于服务器报告对于某一特定资源的有效HTTP方法。
PUT:试图使用包含在请求主体里的内容,向服务器上传指定资源。渗透人员可以通过上传任意脚本执行来攻击。

URL

URL(Uniform Resource Locator),统一资源定位符。是标识web资源的唯一标识符。
具体格式如下:

protocol://hostname[:port]/[/path]file[?pram=value]

其实正式属于叫做URI(Uniform Resource Identifier),统一资源标识符。有人非要炫耀着这么叫,就给他两巴掌。

HTTP消息头

常用消息头

  • Connection:用于高速通信另一端保持连接还是关闭
  • Content-Encoding:指定消息主体的编码形式
  • Content-Length:规定消息主体的字节长度
  • Content-Type:规定消息主体的内容类型
  • Transfer-Encoding:指定消息主体使用任何编码(块编码)

请求消息头

  • Accept:告诉服务器愿意接受哪些内容
  • Accept-Encoding:告诉服务器客户端愿意接受哪种编码
  • Authorization:用于为一种内置HTTP身份验证向服务器提交证书
  • Cookie:向服务器提交它以前发布的cookie
  • Host:指定现在被请求的完整URL的主机名
  • Referer:用于指示提出当前请求的原始URL
  • User-Agent:提供浏览器的信息

响应消息头

  • Cache-Control: 向浏览器传送缓存指令(如no-cache)
  • Server:提供web服务器软件信息
  • Set-Cookie:用于向浏览器发布cookie,浏览器在随后的请求中返回服务器

要考试了,所以这一节分两次写,溜了溜了

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • Web 页面的实现 Web 基于 HTTP 协议通信 客户端(Client)的 Web 浏览器从 Web 服务器端...
    毛圈阅读 1,072评论 0 2
  • http协议有http0.9,http1.0,http1.1和http2三个版本,但是现在浏览器使用的是htt...
    一现_阅读 1,855评论 0 3
  • API定义规范 本规范设计基于如下使用场景: 请求频率不是非常高:如果产品的使用周期内请求频率非常高,建议使用双通...
    有涯逐无涯阅读 2,519评论 0 6
  • 深入浅出HTTP协议(WEB开发和面试必备) 1.基础概念篇 a.简介 HTTP是Hyper Text Trans...
    半世韶华忆阑珊阅读 1,212评论 0 7
  • 本文整理自MIN飞翔博客 [1] 1. 概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或...
    HoyaWhite阅读 2,634评论 2 20