HTTP简介
HTTP协议,超文本传输协议(Hypertext transfer protocol)。浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则。HTTP协议作为TCP/IP模型中应用层的协议,一般使用在TCP协议之上,有时也承载于TLS或SSL协议层之上(HTTPS)。HTTP默认的端口号为80,HTTPS的端口号为443。
- HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
- HTTP是一个无状态的协议。
- HTTP协议在TCP协议之上进行数据传输。
- HTTP协议并不只是使用在Web服务上(浏览器访问),只需要客户端和服务端遵循协议即可。
请求流程
当我们发起一个HTTP请求时,浏览器会进行如下的过程:
URI、URL、URN
URI
Uniform Resource Identifier(统一资源标识符)
用于标识某一互联网上的唯一资源的方式。
该种标识允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。
URL
Uniform Resource Locator(统一资源定位符)
http://user:pass@host.com:80/path?query=string#hash
其中http为schema
,也可以为https
、ftp
、telnet
等等
如果资源需要特定的身份则需要加上user:pass
,但一般不使用这种方式host.com
用于指定服务器在互联网中的位置80
为web服务的端口,默认http使用80端口,https使用443端口path
可称为路由,是对资源的定位query=string
为请求的参数,多个参数使用&
分隔
最常见的形式是 URI,经常指定为非正式的网址。
URN
Uniform Resource Name(统一资源名称),其目的是通过提供一种途径,用于在特定的命名空间资源的标识,以补充网址。
HTTP报文
请求报文
首行: method url(请求地址)协议版本
Header:传输的数据和内容
参考资料:HTTP协议详解