HTTP

语义浏览器与服务器软件之间的通信协议。
关键点应用程序在处理IO时,读取的就是缓存队列里的字节流,而协议定义的就是字节流的语法,方便拆解、读取字节流。
关键点所以说应用层很简单,就是应用程序双方编解码。

核心概念

MIME媒体类型

语义标记文档类型。它的类型值的表示:对象类型/子类型。例如:text/javascript、text/html、image/jpg
关键点互联网上的资源种类很多,必须标记它的数据格式。浏览器需要通过MIME类型来判断文件应该如何处理。

URI、URL、URN

应用层:HTTP协议 - 图1

  • URI:服务器资源都有一个名字,资源的名字统称为统一资源标识符。
  • URL:它是URI的一种,同时告诉你如何访问到互联网中的资源。

关键点URL有统一的标准语法格式,肯定会包含协议名。
image.png

  • URN:统一资源名。这和C语言中的#defined宏定义概念是一样的。使用一个别名来表示一个资源的地址。即使这个资源地址变更,但是对用户来说,它是隐藏的。

    版本

    http/0.9

    最早的协议版本。
    关键点没有版本信息,因为当时只有一个版本。
    关键点没有首部;只有响应中有实体。

netcat程序

一个可以与服务器建立连接的小程序。通过该程序感性的认识建立TCP连接,然后发送http请求。

  1. 首先第一步与服务器建立TCP连接。

image.png
关键点结果什么事情也没发生,但是客服端已经与服务器建立TCP连接,可以发送请求了。
image.png

  1. 发送http请求

image.png