Http学习简单记录
正在加载今日诗词....2020-08-14
- http(Hyper Text Transfer Protocol 超文本链接协议)
- 特点
- URL(Uniform Resource Locator 统一资源定位符)
- HTTP 之状态码
- HTTP 工作原理
- 浏览器地址栏键入 URL,按下回车经历
http(Hyper Text Transfer Protocol 超文本链接协议)
基于 tcp/ip 协议
特点
- 简单快速
- 灵活(任意类型由 Content-Type 标记)
- 无连接(请求完成断开连接)
- 无状态
- 支持 B/S 及 C/S
URL(Uniform Resource Locator 统一资源定位符)
http 使用统一资源标识符(URI Uniform Resource Identifiers)来传输数据和建立连接,URL 是特殊的 URI
- URL 构成(http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name) 包括:
- 协议部分 http 或 ftp 等
- 域名部分:www.aspxfans.com
- 端口部分:端口不是必须,如果省略将采用默认端口
- 虚拟目录部分:第一个/到最后一个/是虚拟目录部分,/news/
- 文件名部分:从域名后的最后一个'/'开始到'?'为止,index.asp
- 锚部分:从'#'开始到最后,都是锚部分,name
- 参数部分:从'?'开始到'#'之间都是参数
- URL 和 URI 关系 URI 是 Uniform Resource Identifier,统一资源标识符,用来唯一的表示一个资源(web 上可用的资源:图片、文档、视频、程序)都是 URI 来定位的 URI 由三部分组成:访问资源的命名机制、存放资源的主机名、资源自身的名称 URL 由三部分组成:协议、存有该资源的主机 IP 地址、主机资源的具体地址
- HTTP 协议之请求消息 Request
- HTTP 协议之请求消息 Response
HTTP 之状态码
- 1xx 正在请求状态中
- 2xx 请求成功
- 3xx 需要重定向
- 4xx 资源找不到,客户端问题
- 5xx 服务器错误 常见状态码:
- 200 OK/客户端请求成功
- 400Bad Request/客户端请求有语法错误,不能被服务器所理解
- 401 Unauthorized /请求未经授权
- 403Forbidden / 服务器收到请求,但是拒绝提供服务
- 404Not found / 请求资源找不到
- 500 Internal Serve Error / 服务器不可预期的错误
- 503 Server Unavailable / 服务器不可用
HTTP 工作原理
Http 协议采用请求/响应模型,客户端发送请求报文(请求的方法、URL、协议版本、请求头部和请求数据),服务器返回状态行作为响应(协议的版本、成功或错误代码、服务器信息、响应头部和响应数据) HTTP 请求/响应步骤:
- 客户端连接到 web 服务器,一个 Http 客户端,通常是浏览器,与 web 服务器的 http 端口建立一个 tcp 套接字连接
- 发送 http 请求,通过 TCP 套接字,客户端向 web 服务器发送一个文本的请求报文,由请求行、请求头部、空行和请求数据组成
- 服务器接受请求并返回 HTTP 响应,web 服务器解析请求,定位请求资源,服务器将资源副本写到 tcp 套接字,有客户端读取,由状态行、响应头部、空行和响应数据
- 放连接 tcp 连接,若 connection 模式为 close,则服务器主动关闭 TCP 连接,客户端被动关闭,释放 tcp 连接;若 connection 模式为 keepalive,则该连接会继续接受请求
- 客户端浏览器解析 HTML 内容,客户端浏览器首先解析状态行,查明表明请求是否成功的状态码。然后解析每一个响应头,响应头告知以下为若干字节的 HTML 文档和文档的字符集,客户端浏览器读取响应数据 HTML,根据 HTML 的语法对其进行格式化,并在浏览器窗口展示
浏览器地址栏键入 URL,按下回车经历
- 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP
- 解析出 IP 地址后,根据该 IP 地址和端口,和服务器建立 TCP 连接
- 浏览器发出读取文件(URL 中域名后面部分对应的文件)的 HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器
- 服务器对浏览器请求做出响应,并把 对应的 html 文本发送给浏览器
- 释放 tcp 连接
- 浏览器将该 html 文本显示内容
京ICP备2022027737号
Copyright © 2022 - present @wangxiang