Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

理解 HTTP 专业术语 #9

Open
gauseen opened this issue Mar 15, 2019 · 0 comments
Open

理解 HTTP 专业术语 #9

gauseen opened this issue Mar 15, 2019 · 0 comments
Assignees
Labels

Comments

@gauseen
Copy link
Owner

gauseen commented Mar 15, 2019

  • 客户端 user-agent 是什么?
    user-agent 就是任何能够为用户发起行为的工具。这个角色通常都是由浏览器来扮演。一些例外情况,比如是开发者使用的程序,以及 Web 开发者调试应用程序。

  • http 是什么?
    超文本传输​​协议(HTTP),它通常被用于Web浏览器和Web服务器之间的通信

  • 服务器资源是什么?
    网络上的一切内容都是资源,无论是静态的文件,还是动态生成的文件

  • 媒体类型是什么?
    就是一种数据类型的标记,用来表示传输的数据是什么类型的,好让接收端知道,接收到的是什么类型的数据,这样接收端好处理该数据。
    常见的标记方式是[MIME][0_0],MIME 描述了文件的主要类型以及特定子类型,如Content-Type: text/htmltext 描述文件的主要类型是文本,而子类型是 html 文档。
    浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理文档;因此服务器设置正确的MIME类型附加到响应对象的头部是非常重要的。

  • URI 是什么?
    首先URI从其概念来说是统一资源标识符,它的作用就是在网络上唯一确定一个资源,就好比,在中国,身份证能唯一确定一个人一样!知道身份证号,就一定能确定一个人姓甚名谁一样!它有两个子集:URL(统一资源定位符)和URN(统一资源名),首先不特别声明,我们所说的URI就是指URLURL是跟资源其在网络上的位置有关!而URN是指资源跟其名字有关。

  • 请求方法指什么?
    客户端向服务器发起请求的方式。常见的方法有:get、post、delete、put

  • 状态码是什么??
    HTTP响应状态码指示HTTP请求是否已成功完成。响应分为五类:信息响应,成功响应,重定向,客户端错误和服务器错误。

  • 报文是什么?
    HTTP报文分为:请求报文、响应报文。两种报文都具有类似的结构,分别由三个部分构成:起始行、首部、主体,起始行描述报文干了什么。首部描述报文传输的具体细节。主体描述传输的实际内容。

  • URL 输入到页面显示,经历了什么过程?

    • 浏览器地址栏输入时联想提示

    • URL 解析,URL 为了在不同协议不同传输机制都可以安全的运送信息,采用的字符都是符合 ASCII 集的。若有非 ASCII 的字符(中文等),就会先通过转义处理。

    • DNS (Domain Name System) 解析

      • 为什么要 DNS 解析
        因为 http 是基于 tcp 连接的,而 tcp 则是通过 ip 地址去识别的。DNS 解析就是域名转化成 ip 地址的过程
      • 浏览器 DNS 解析优先级
        查看浏览器内部缓存 ---> 系统缓存(host 文件) ---> 路由器缓存、ISP 缓存 ---> 本地 DNS 服务器(可无) ---> DNS 服务器 ---> 找不到服务器地址
    • 浏览器建立一条与web服务器的 TCP 连接(TCP 三次握手)

    • 浏览器向服务器发送一条 http 请求报文

    • 服务器向浏览器回送一条 http 响应报文

    • 浏览器解析渲染文档

    • 关闭连(TCP 四次握手)

二、HTTP 报文

HTTP/1.1 以及更早的 HTTP 协议报文都是语义可读的。在 HTTP/2 中,这些报文被嵌入到了一个新的二进制结构,帧。报文分请求报文、响应报文。都由三个部分组成,起始行、首部、主体。

# 请求报文

<method> <request-URL> <protocol/version>
<headers>

<entity-body>

注:
<method> 请求方法
<request-URL> 请求 URL
<protocol/version> http 协议版本号
<headers> 请求头(首部)
<entity-body> 请求参数
# 响应报文

<protocol/version> <status> <reason-phrase>
<headers>

<entity-body>

注:
<protocol/version> http 协议版本号
<status> 状态码
<reason-phrase> 状态信息(这个信息是非权威的状态码描述信息,可以由服务端自行设定)
<headers> 响应头(首部)
<entity-body> 响应数据

参考文章

@gauseen gauseen changed the title HTTP 专业术语 理解 HTTP 专业术语 Mar 15, 2019
@gauseen gauseen added the HTTP label Apr 26, 2019
@gauseen gauseen self-assigned this Oct 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant