Web基础复习——HTTP协议相关

HTTP协议历史演变

Hypertext Transfer Protocol,超文本传输协议。
规定了浏览器和万维网服务器之间相互通信的规则。
是客户端和服务器之间请求和应答的标准。
HTTP是基于TCP/IP协议的应用层协议,无状态,默认使用80端口。

HTTP/0.9

这是最早的版本。

  • 只有一个 GET 命令。
  • 服务器只能回应HTML格式的字符串,不能回应别的格式。

请求格式:
GET /index.html
表示TCP连接建立后,客户端向服务器请求网页index.html。

HTTP/1.0

  • 命令增加了 POSTHEAD
  • 可以传输任何形式的内容,包括图像、视频等。
  • 新增状态码、缓存、内容编码等功能。

请求格式:

GET /HTTP/1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: */*

第一行是请求命令,必须在尾部添加协议版本

响应格式:

协议版本 状态码 状态描述
头信息

数据

头信息与数据中间的空行是本身就有的。

HTTP/1.1

  • 引入了持久连接。TCP连接默认不关闭,可被多个请求复用,不需要声明Connection:keep-alive;客户端与服务器发现对方一段时间无活动,就可以主动关闭连接;最好在客户端最后一个请求时,发送Connection:close,明确要求服务器关闭TCP连接。
  • 引入了管道机制。在同一个TCP连接中,客户端可以同时发送多个请求,而不需要等待上一个请求被回应之后再发送新的请求。但是服务器还是按请求的先后顺序回应请求。
  • 增加了动词方法PUTPATHHEADOPTIONSDELETE
  • 客户端请求头增加了Host字段,制定服务器的域名。
  • 头信息是文本(ASCII编码),数据体既可以是文本也可以是二进制。

这个版本的目前还是很流行的。

HTTP/2

  • 头信息和数据体都是二进制,统称为“帧”。

  • 多工
    什么是多工
  • 数据包不按顺序发送,同一个连接里连续的数据包可能属于不同的响应。每个请求或响应的所有数据包称为一个数据流

  • HTTP/2通过发送信号RST_STREAM帧取消数据流,不需要关闭TCP连接。

  • 将头信息使用gzipcompress压缩后发送,客户端与服务器同时维护一张头信息表,通过发送索引号,来提高请求速度。

URL

Universal Resource Locator,统一资源定位符,即网页地址、因特网上标注的资源的地址。

一般形式:
<URL访问形式>://<主机>:<端口>/<路径>
例如: http://asdf.com:80/index.html

URL访问方式: ftp、http、news
主机: 网站的域名、IP地址(必须有)
端口: http固定端口为80(可省)
路径: 资源的位置(可省)

请求

一般格式:

请求行

请求方法:
GET:读取由URL所标识的信息;
POST:给服务器添加信息;
OPTION:请求一些选项的信息;
HEAD:请求读取URL所标识信息的首部;
PUT:在指明的URL下存储一个文档;
DELETE:删除指名的URL所标志的资源;
TRACE:用来进行环回测试的请求报文;
CONNECT:用于代理服务器。

URL字段: 路径,若URL中未给出路径,则当它作为请求URL时,必须以“/”的形式给出,通常这个工作浏览器自动完成。

版本: 目前HTTP协议用得最多的是1.1版本。

请求头部

由关键字/值对组成,每行一对,关键字和值用英文冒号分割。请求头部通知服务器有关客户端请求的信息。

空行: 发送回车符和换行符,通知服务器一下不再有请求头。

常用请求头 含义
Accept 指定客户端接受哪些类型的信息
Accept-Encoding 指定可接受的内容编码
Accept-Language 指定一种自然语言
Host 指定被请求资源的Internet主机和端口号
User-Agent 允许客户端将它的操作系统、浏览器和其它属性告诉服务器
Referer 上一个网页的URL

示例:

请求数据

不在GET方法中使用,在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头是Content-Type和Content-Length。

响应

一般格式:

状态行

版本: 常用HTTP/1.1版本

状态码: 由三位数字组成
五种可能取值:

取值 含义
1xx 保留
2xx 表示请求成功地接受
3xx 要完成请求必须进一步细化请求
4xx 客户错误
5xx 服务器错误
常见状态描述短语 含义
200 OK 客户端请求成功
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized 请求未经授权
403 Forbidden 服务器收到请求,但是拒绝提供服务
404 Not Found 请求资源不存在
500 Internal Server Error 服务器发生不可预期的错误
503 Sever Unavailable 服务器当前不能处理客户端的请求

首部行

包含了服务器和报文主题的信息。

空行

最后一个响应头之后是一个空行,发送回车符和换行符,通知客户端以下是报文实体。

响应数据

包含了用户要得到的数据或是错误信息。

常用响应头 含义
Location 重定向接收者到一个新的位置
Server 包含服务器用于处理请求的软件信息
WWW-Authenticate 必须被包含在401(未授权的)响应消息中,请求服务器对收到401响应的客户端进行验证

示例:

HTTP代理服务器

可以代表浏览器发出HTTP请求。
将最近的一些请求和响应暂存在本地磁盘中,当与暂存的请求相同的新请求到达时,代理服务器就将暂存的响应发出去,不需要按URL的地址再去因特网访问该资源。

可在客户和服务器端工作,也可以在中间系统上工作。
过程

HTTP协议与HTTPS协议的区别

HTTPS为HTTP的升级版,比HTTP协议更加安全。安全基础为SSL,即在HTTP下加入SSL层。HTTPS通过安全传输机制进行传送数据。保证传送的数据的隐秘性、完整性,降低非侵入性拦截攻击的可能性。

HTTP HTTPS
传输方式 明文传输 SSL加密传输
连接方式 80端口连接 443端口连接
所需证书 不需要 到ca申请证书,免费很少,需要交费,优秀而由Web容器提供,如TOMCAT
连接特点 相对简单、无状态 由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议

其他需要了解的

Cookie
浏览器第一次访问服务器时,服务器发送到浏览器并保存在本地的一小块数据,在浏览器下一次向同一服务器发起请求时被携带并发送到服务器上。
用于告诉服务端,两个请求是否来自同一浏览器。

  • 敏感信息不应通过Cookie传输
  • Cookie的Secure标记,只应用过被HTTPS协议加密过的请求发送给服务端
  • 使用HttpOnly标记,可以一定程度上避免XSS攻击

Session
会话信息,保存在Web服务器上。比Cookie更安全。

Token
服务端生成的一串字符串,作为客户端进行请求的标识。
用于身份认证。

X-Frame-Options
在HTTP响应头中出现,用于给浏览器指示是否可在<frame>, <iframe>或者 <object> 中展现的标记。
网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持攻击。

X-Content-Type-Options
在HTTP响应头中出现。
用于规定客户端必须要遵循Content-Type首部中对MIME类型的设定,不能修改。
禁用了客户端的MIME类型嗅探行为。

MIME类型举例:img/gif

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