企业资料通讯Week4 (2) | HTTP

HTTP 与Web 请求

HTTP,超文本传输协定(HyperText Transfer Protocol),是一个Client端(使用者)和服务器端(网站)之间请求和应答的标准。

使用URL要求 Web Page 的物件位址
https://ithelp.ithome.com.tw/upload/images/20211015/20135414wOcQ8uA0BR.png

流程:
(1)Server 开一个 TCP Port 80
(2)由HTTP Client端建立Socket 与远方的 Server指定埠(预设是80埠)进行TCP连线。
(3)Client端发出要资料的请求(request(containing URL)),HTTP服务器则在那个埠监听Client端的请求。一旦收到请求,服务器会向Client端回覆(response)并返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的Web Page 里面的档案、错误讯息、或者其它讯息,之後在Client 的浏览器里做美化与呈现。
(4)交换完资料,TCP 连线 closed
/*口诀:连,传,关/

=> Socket 是资源共享的,不会一直占用,因此会有 Set up 阶段 与 释放阶段。

HTTP小整理

  • 目前多数使用 HTTP/1.1
  • 属於应用层的协定
  • 透过 TCP 或 TLS 来发送或接收资讯
  • 无状态(stateless)

甚麽是无状态 (stateless)?

就是Server 不用记得以前服务过谁。举一个简单的情境:透过 HTTP 请求成功登入服务後,想使用服务。无状态的特性会让服务器无法知道「使用服务的请求」跟「刚刚已成功登入服务的请求」是同一个使用者,也因此无状态在身分验证上会出现较多问题。
如果是状态化(state)就会比较复杂:例如收信与送信的app,他可能有帐密登入,记得你已经读过的信等,比较复杂。

持续连线(Persistent) V.S 多次连线(Non Persistent)

多次连线(Non Persistent)

at most one object
sent over a single TCP
connection

在HTTP1.0的时候使用多次连线(Non Persistent),TCP连线在每一次请求/回应对之後会关闭,就一直开开关关(有10个Object就重新连线10次)。
如图:

https://ithelp.ithome.com.tw/upload/images/20211015/20135414rVx8IvXNtz.png

持续连线(Persistent)

multiple objects can
be sent over single
TCP connection
between client, server

现在使用的HTTP1.1使用 持续连线(Persistent),一个连接可以重复在多个请求/回应使用,大大减少等待时间。
如图:
https://ithelp.ithome.com.tw/upload/images/20211015/20135414Kq01FsD9CO.png

RTT (run trip time):

一来一往经过的时间

time for a
small packet to travel from
client to server and back

Non Persistent 每次传一个物件都要两个RTT(1.要求Set up 与 2.资料往返)
https://ithelp.ithome.com.tw/upload/images/20211015/20135414QLo9ldaD3o.png


参见:
超文本传输协议(HTTP)是什麽?
简介 HTTP 协定
wikipedia HTTP


<<:  追求JS小姊姊系列 Day30 -- 所以姊姊追到哪了?

>>:  Day30 - 使用 Rails Generator 快速实作卡米狗学说话

[CSS] Flex/Grid Layout Modules, part 2

本篇会有不少冷门范例。 其实我觉得很奇妙,就是我老是踩到一些超冷门连 Google 都找不太到的雷...

[Day 9] SRE - 自动化

自动化 什麽东西可以自动化?对我而言只要可以列出SOP的事情,都可以实现自动化。 价值 一致性 当不...

勒瑰恩谈写作 (2) 叙事观点和声音

今天算是主菜⋯⋯可惜还剩一点尾巴,明天才能读完全本。 不过实际在读的时候,要参照很多的案例,把所有的...

Delphi 列举(筛选)子目录下符合档案【附例】

Purpose:运用’回呼函数Callback’,列举(筛选)子目录下符合档案 Enviro:Del...

div及span容器标签-基础语法

介绍div及span容器标签使用方式及注意事项 浅谈div区块元素及span行内元素 <di...