HTTP课程复习总结

一、Http

1.URL

URL:HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建⽴立连接。URL是一种特殊 类型的URI,包含了⽤于查找某个资源的足够的信息 URL,全称是Uniform Resource Locator, 中⽂文叫统一资源定位符,是互联网上用来标识某一处资源的地址。

URL组成:http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

  1. 协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协 议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后⾯面的“//”为分隔符
  2. 域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用
  3. 端口部分:跟在域名后⾯面的是端口,域名和端口之间⽤用“:”作为分隔符。端口不是一个URL必须的部分, 如果省略端口部分,将采⽤用默认端⼝口
  4. 虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟⽬目录部分。虚拟⽬目录也不是一个 URL必须的部分。本例例中的虚拟⽬目录是“/news/”
  5. 文件名部分:从域名后的最后⼀一个“/”开始到“?”为⽌止,是文件名部分,如果没有“?”,则是从域名后的最后 一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例例中的⽂文件名是“index.asp”。文件名部分也不是⼀一个URL必须的部分,如果省略略该部分,则使⽤用默认的⽂文件名
  6. 锚部分从“#”开始到最后,都是锚部分。本例例中的锚部分是“name”。锚部分也不不是一个URL必须的部分
  7. 参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例例中的参数部分 为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间⽤用“&”作为分隔符。

2.Http协议

Http协议:HTTP协议(HyperText Transfer Protocol,超⽂文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML ⽂文件, 图片⽂文件, 查询结 果等)。

原理:HTTP协议定义Web客户端如何从Web服务器器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采⽤了请求/响应模型。客户端向服务器 发送一个请求报⽂文,请求报⽂文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功 或者错误代码、服务器器信息、响应头部和响应据。

一个请求的过程

  • 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
  • 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
  • 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
  • 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器; 释放 TCP连接;
  • 浏览器将该 html 文本并显示内容;

Http协议是基于TCP/IP协议上的应用层协议

HTTP课程复习总结_第1张图片

HTTP课程复习总结_第2张图片

Http特点

  • 基于请求-响应的模式:HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务器器端在没有接收到请求之前不会发送响应。
  • 无状态保存HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。HTTP/1.1虽然是无状态协议,但为了 实现期望的保持状态功能, 于是引入了Cookie技术。有了Cookie再用HTTP协 通信,就可以管理理状态了
  • 无连接无连接的含义是限制每次连接只处理理一个请求服务器器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种⽅方式可以节省传输时间,并且 可以提高并发性能,不能和每个用户建立⻓长久的连接,请求一次相应一次,服务 端和客户端就中断了。

注:早期的http协议是一个请求一个响应之后,直接就断开了了,但是现在的http协 议1.1版本不是直接就断开了了,⽽而是等几秒钟,这⼏几秒钟是等什么呢,等着用户有后续的操作,如果用户在这几秒钟之内有新的请求,那么还是通过之前的连接通道来收发消息,如果过了这⼏秒钟用户没有发送新的请求,那么就会断开连接,这样可 以提⾼高效率,减少短时间内建⽴立连接的次数,

3.Http请求与响应

Http的请求

  • HTTP请求协议包括:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成
  • 请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本。
    HTTP课程复习总结_第3张图片

Httpx协议请求方法

  • GET 请求指定的页面信息,并返回实体主体。
  • HEAD 类似于get请求,只不不过返回的响应中没有具体的内容,用于获取报头
  • POST 向指定资源提交数据进行处理请求(例如提交表单或者上传⽂文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
  • PUT 从客户端向服务器器传送的数据取代指定的文档的内容。
  • DELETE 请求服务器器删除指定的页面。
  • CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
  • OPTIONS 允许客户端查看服务器器的性能。
  • TRACE 回显服务器器收到的请求,主要⽤用于测试或诊断。

GET和POST的区别

  • GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如 EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的 Body中.
  • GET提交的数据大小有限制(因为浏览器对URL的长度有限制),⽽而POST方法提交的数据没有限制.
  • GET方式提交数据,会带来安全问题,⽐比如⼀一个登录⻚页⾯面,通过GET方式提交数据时,⽤户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.

Http响应

  • HTTP响应协议包括:四个部分,分别是:状态行、消息报头、空行和响应正文:
    HTTP课程复习总结_第4张图片

  • HTTP状态码(状态代码有三位数字组成,第一个数字定义了响应的类别):

    • 1xx:指示信息--表示请求已接收,继续处理理
    • 2xx:成功–表示请求已被成功接收、理理解、接受
      • 200 ok //客户端请求成功
    • 3xx:重定向–要完成请求必须进行更进一步的操作
    • 4xx:客户端错误--请求有语法错误或请求无法实现
      • 400 Bad Request //客户端请求有语法错误,不能被服务器理解
      • 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域⼀起使用
      • 403 Forbidden // 服务器收到请求,但拒绝提供服务
      • 404 Not Found // 请求资源不存在,错误的URL
    • 5xx:服务器端错误–服务器未能实现合法的请求
    • 500 Internal Server Error //服务器发送不可预期的错误
    • 503 Server Unavailable // 服务器当前不能处理客户的请求,一段时间后可能回复正常

请求过程:
HTTP课程复习总结_第5张图片

二、Https

http不足:

  • 通信使⽤明⽂,内容可能会被窃听 —— 加密通信线路
  • 不验证通信⽅,可能遭遇伪装 —— 证书
  • ⽆法验证报⽂的完整性,可能已被篡改 —— 数字签名

HTTPS:HTTP 协议中没有加密机制,但可以通过和 SSL(Secure Socket Layer, 安全套接层 )或 TLS(Transport Layer Security, 安全层传输协议)的组合使⽤,加密 HTTP 的通信内 容。属于通信加密,即在整个通信线路中加密。

HTTP + 加密 + 认证 + 完整性保护 = HTTPS(HTTP Secure )

HTTP课程复习总结_第6张图片
HTTPS 采⽤共享密钥加密(对称)公开密钥加密(⾮对称)两者并⽤的混合加密机制。若密钥能够实现安全交换,那么有可能会考虑仅使⽤公开密钥加密来通 信。但是公开密钥加密与共享密钥加密相⽐,其处理速度要慢。

HTTP课程复习总结_第7张图片

三、对称加密与非对称加密

1.对称加密

对称加密的特点是文件加密和解密都是使用相同的密钥,因此密钥需要在加密方和解密方传输,导致密钥容易泄露和被破解。

2.非对称加密

非对称加密算法需要两个密钥公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密, 根据公开的公钥无法测算出另一不不公开的密钥(即为私钥),而私有密钥保存在解密方本地,只要解密方自己不泄露出去,私钥就没有泄露的可能。非对称加密很好的克服对称加密算法的弱点

常常使用的SSH’就是非对称加密

HTTPS不足:

  • 加密解密过程复杂,导致访问速度慢
  • 加密需要想认证机构付费
  • 整个页面的请求都要使用HTTPS

你可能感兴趣的:(http)