您的位置:首页 > 理论基础 > 计算机网络

【图解HTTP】读书笔记

2017-09-07 11:34 190 查看

【图解HTTP】读书笔记

常见概念

HTTP:全称是Hyper Text Transfer Protocol,超文本传输协议

版本:HTTP/1.0、HTTP/1.1

协议:某一种公用的规则

HTTP相关协议

DNS:用于将域名解析为IP,供IP层使用

TCP:提供可靠在字节流服务,用于传输HTTP报文

IP:根据IP地址,选择合适的路由,发送对应的数据包

ARP:用于将IP解析为MAC地址,供数据链路层使用

URL与URI

URI:Uniform Resource Identifier,统一资源标识符,也就是通过某种协议方案标识的资源的定位符

Uniform:以统一的格式进行标识

Resource:可以用于标识的资源

Identifier:标识具体可以标识的对象

作用:用于标识资源

URL:Uniform Resource Locator,统一资源定位符,是URI的一个子集,用于标识某一具体的资源

需要注意的是,URI可以用于描述某一资源,但可能无法具体定位到某一个资源,而URL则是可以具体定位到该资源

简单的HTTP协议

通信模式:基于请求和响应模式,没有请求则没有响应,通信过程中不保存状态信息(无状态协议),也就是不对请求和响应之间的通信状态进行保存

报文类型

请求报文

格式(请求行 请求头部字段\r\n请求实体内容)

响应报文

格式(响应行 响应行头部字段\r\n响应实体内容)

HTTP方法

GET:用于获取资源

POST:用于传输主体的实体

PUT:用于传输文件(一般网站不开发该功能)

HEAD:与GET类似,但是不返回报文主体内容,主要用于确认URI有效性以及资源的更新日期

DELETE:用于删除文件,与PUT相反(一般不开放)

OPTIONS:用于查询指定URI资源支持的方法

TRACE:跟踪路径(不怎么使用)

CONNECT:要求使用隧道协议连接代理,主要是SSL(Secure Sockets Layer,安全套接字)和TLS(Transport Layer Security,传输层安全)将通信的内容加密

长连接和短连接

短连接:在HTTP初期版本中,每次完成一个HTTP传输,就需要建立一次TCP连接,会造成很多不必要的开销,使得网络性能降低

长连接:只要通信的一端没有明确提出断开连接,则保持TCP连接(keep-alive),建立一个TCP连接可以进行多次的HTT通信,减少了TCP的建立以及断开所造成的额外开销,减轻负担

管线化

在长连接的基础上,使得请求管线化成为可能,在这之前,每一次请求都需要等到前一次请求的响应回来之后才能发出,而采用管线化之后,则可以不用等到响应再发出新的请求

Cookie技术

在请求和响应报文中,加入Cookie信息,用于保存状态信息,从而使得无状态协议HTTP协议可以保存状态

HTTP报文信息

HTTP报文

使用HTTP协议进行通信的信息称为HTTP报文

请求端发出的报文称为请求报文

响应段发出的报文称为响应报文

报文的基本格式(报文首部CRLF报文主体)

【报文结构图】

HTTP状态码

作用:用于告知客户端服务端处理的结果

格式:3位数字 + 状态码说明

类别

1XX:信息性状态码,表示请求正在处理

2XX:成功状态码,表示请求正常处理完毕

3XX:重定向状态码,需要进行附加操作以完成请求

4XX:客户端错误状态码,服务器无法处理请求

5XX:服务器错误状态码,服务器处理请求错误

常用状态码

2XX系列,表示成功

200 OK,表示请求被正常处理

204 No Content, 表示请求被正常出来,但是返回的响应报文中不包含实体的主体部分

206 Partial Content,表示客户端进行范围请求,而服务端成功执行了这部分的请求,响应报文由Content-Range指定实体内容

3XX系列,重定向,表示浏览器需要执行某些特殊的处理以正确处理请求

301 Moved Permanently,永久性重定向,表示请求的资源已经分配了新的URI,以后应该使用新的URI

302 Found,临时性重定向,表示请求的资源已经分配新的URI,希望用户本次能使用新的URI访问

303 See Other,表示请求的资源存在另外一个URI,应使用GET方法定向获取资源

304 Not Modified,请求的附带条件的资源找到,但是未满足请求的条件(与重定向无关)

307 Temporary Redirect,临时性重定向,与302类似

4XX系列,客户端错误,表明客户端是发生错误的原因所在

400 Bad Request,请求报文中存在语法错误

401 Unauthorized,表示请求需要认证

403 Forbidden,表示请求的资源被服务器拒绝

404 Not Found,无法找到请求的资源

5XX系列,服务器错误,表示服务器本身发生错误

500 Internal Server Error,服务器执行请求时发生了错误或临时性故障

503 Service Unavailable,服务器暂时处于超载状态或正在进行停机维护,现在无法处理请求

HTTP首部

作用:在客户端与服务器通信过程中传递额外信息

格式:
首部字段名: 字段值1, 字段值2, ...


类型

通用首部字段(请求和响应报文都会使用的字段)



请求首部字段(补充了请求的附加信息)





响应首部字段(补充了响应的附加信息)





实体首部字段(补充与实体内容有关的信息)



确保安全的HTTPS

HTTP缺点(未加密协议)

使用明文通信,内容可能会被窃听

不验证通信方的身份,有可能会遭遇伪装

无法验证报文的完整性,有可能内容遭修改

加密策略

通信加密,通过和SSL或TLS组合使用,建立安全的通信通道,加密HTTP通信内容

内容加密,将参与通信的内容本身加密

HTTPS = HTTP + 加密 + 认证 + 完整性保护,需要注意的是,HTTPS本身并非新的协议,只是在HTTP上加了SSL

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息