[网络基础]http的重点

http简介

http(hypertext transfer protocol),即超文本传输协议。因特网的多媒体信息,有如下特点:
- 可靠传输,基于TCP/IP链接
- 位于应用层上

重点内容

http链接处理

  1. 浏览器从URL中解析出服务器的主机名
  2. 浏览器将服务器的主机名转换成服务器的IP地址
  3. 浏览器将端口号(如果有的话)从URL解析出来
  4. 浏览器建立一条与WEB服务器的TCP链接
  5. 浏览器向服务器发送一条HTTP请求报文
  6. 服务器向浏览器回送一条HTTP请求报文
  7. 关闭链接,浏览器显示文档

URI

URI(Uniform Resource Identifier),即统一资源定位符。URI的作用在于将网上的资源命名规范化,客户端能够通过其定位每一个资源,就像生活中地址一样,从国家、省份一直到街道门牌号。
在URI出现前地址并不是规范化的,因此你需要自己通过ftp的方式登陆远程服务器进行一些操作才能拿访问到资源。
URI将资源地址规范化,使得大众能够直接通过URI地址获得资源。

URI的结构

<scheme>://<user>:<password>@<host><port>/<path>;<params>?<query>#<flag>
组件描述默认值
scheme/方案访问服务器以获取资源的协议
use/用户访问服务器需要的用户名匿名
密码/password用户名对应的密码E-mail地址
host/主机资源服务器的IP地址或主机名
port/端口资源服务器监听的端口号(HTTP默认80)每个方案特有
path/路径资源在服务器上的本地名
params/参数某些方案会用这个组件来输入参数,格式:参数名=值
query/查询某些方案会用这个组件传递参数以激活程序
flag/标志一小片或一部分资源的名字,这部分只会在客户端处理,不会传递到服务器

报文结构

以下会用charles工具来分析报文的结构,你可以在这里下载charles

request

格式

请求
如上图为request报文的结构,一般包括三部分

  • 请求行
    请求行请求的方法,请求的链接以及HTTP的版本号
  • 首部
    可以有零个首部或多个首部,每个首部的形式为”首部名: 值”,首部是以空行结束的
  • 实体的主体部分
    实体是一个由任意数据组成的数据块,也可以只是一个空行

下面是报文结构的模板

<method> <request-URL> <version>
<header>

<entity-body>

method/方法

方法描述是否包含主体
GET从服务器取一份文档
HEAD只从服务器取文档的首部
POST向服务器发送需要处理的数据
PUT将请求的主体部分存储在服务器上
TRACE对可能经过代理服务器上取的报文进行追踪
OPTIONS决定可以在服务器上执行哪些方法
DELETE从服务器上删除一份文档

response

格式

如上图,响应报文的格式包括三行,

  • 响应行
    包括版本号、状态码、原因短语
  • 首部
    与request报文一样的格式
  • 实体的主题部分
<version> <status-code> <reason-phrase>
<header>

<entity-body>

链接

我是如何讲清楚TCP运输链接管理的
http://blog.csdn.net/shawjan/article/details/45130531
我是如何讲清楚TCP/IP是如何实现可靠传输的
http://blog.csdn.net/shawjan/article/details/45117945

缓存

重定向与负载均衡

http与https的渊源

参考文献:

http://tools.ietf.org/html/rfc7230

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页