HTTP协议(超文本传输协议,HyperText Transfer Protocol)

背景:设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法
执行过程
1、输入网址
2、域名解析(获取IP地址)
  • 1)查询浏览器缓存
  • 2)查询操作系统缓存(HOST文件)
  • 3)操作系统查询Local DNS缓存
  • 4)Local DNS查询根域名服务器
  • 5)Local DNS根据根域名服务器返回的主域名服务器地址继续向上发起请求
  • 6)Local DNS根据主域名服务器获取域名对应的Name域名服务器的地址继续发起请求
3、建立TCP连接
4、发送HTTP请求
5、服务器处理HTTP请求并返回结果,最后关闭TCP连接
6、浏览器接收到结果数据并渲染
请求方法
GET:用于数据的读取,而不应当用于会产生副作用的非幂等的操作中
POST:向指定资源提交数据,请求服务器进行处理。POST方法是非幂等的方法,因为这个请求可能会创建新的资源或/和修改现有资源。
HEAD:类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取响应头信息
PUT:PUT请求会身向指定资源位置上传其最新内容,PUT方法是幂等的方法。
DELETE:DELETE请求用于请求服务器删除所请求URI(统一资源标识符,Uniform Resource Identifier)所标识的资源。DELETE请求后指定资源会被删除,DELETE方法也是幂等的。
CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS:OPTIONS请求与HEAD类似,一般也是用于客户端查看服务器的性能。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
PATCH:是对 PUT 方法的补充,用来对已知资源进行局部更新 。
状态码
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
HTTP 1.0
HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。
缺陷:访问一个包含有许多图像的网页文件的整个过程包含了多次请求和响应,每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个文档和图像,上一次和下一次请求完全分离。
HTTP 1.1
为了克服HTTP 1.0的这个缺陷,HTTP 1.1支持持久连接(HTTP/1.1的默认模式使用带流水线的持久连接),在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。

一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。

特点
  • 1、支持持久链接 在request和response中的header中的connection是close或者Keep-Alive进行控制
  • 2、一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。

允许客户端不用等待上一次请求结果返回,就可以发出下一次请求

  • 3、支持断点续传 RANGE:bytes
  • 4、身份认证
  • 5、状态管理
  • 6、缓存处理
HTTP 2.0
特点
  • 1、多路复用:允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。
  • 2、二进制分帧:
  • 3、首部压缩:
  • 4、服务端推送:服务端推送是一种在客户端请求之前发送数据的机制。

如果一个请求是由你的主页发起的,服务器很可能会响应主页内容、logo 以及样式表,因为它知道客户端会用到这些东西。

HTTPS
背景:HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密。

执行过程


水一水
39 声望5 粉丝

总结经验,提升自己