一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET /sample/hello.jsp HTTP/1.1。

Http和Https的区别

  1. 安全性
  2. 建立连接的过程

    https:已经建立了TCP连接->客户端发送加密协议和版本->服务端选择加密协议,返回证书->客户端验证证书和法定性->生成随机的密码作,通过证书的公钥加密发送到服务端->服务端解密获取是这个随机密码,使用这个密码加密并传输数据,SSL通信

  3. 端口号 80 / 443

  4. http https
  5. 需要证书
  6. 是否加密

    什么是Http协议无状态协议

    就是每次发送的http请求都是独立的,服务端不知道这个客户端之前是不是发过http,用Cookie保存状态

    URI和URL的区别

    URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。
    URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
    **

    常用的HTTP方法有哪些

  • GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器
  • POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
  • PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
  • HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
  • DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
  • OPTIONS:查询相应URI支持的HTTP方法。

HTTP请求报文与响应报文格式

Http - 图1
Http - 图2

请求

  • Host:请求资源所在服务器
  • Accept:可处理的媒体类型
  • Accept-Charset:可接收的字符集
  • Accept-Encoding:可接受的内容编码
  • Accept-Language:可接受的自然语言

    通用

  • Date:创建报文时间

  • Connection:连接的管理
  • Cache-Control:缓存的控制
  • Transfer-Encoding:报文主体的传输编码方式

    实体

  • Allow:资源可支持的HTTP方法

  • Content-Type:实体主类的类型
  • Content-Encoding:实体主体适用的编码方式
  • Content-Language:实体主体的自然语言
  • Content-Length:实体主体的的字节数
  • Content-Range:实体主体的位置范围,一般用于发出部分请求时使用

    响应

  • Accept-Ranges:可接受的字节范围

  • Location:令客户端重新定向到的URI
  • Server:HTTP服务器的安装信息

    Http2.0特点

  1. 头部压缩
  2. 异步连接多路复用
  3. 请求优先级
  4. 服务器推送流