10

2025Mar

Do not wait to strike till the iron is hot, but make it hot by striking.

不要等到铁烫热再去打它,而是通过打它让铁变热。

  • 嘿,朋友,在当下这段时间,我们生命当中有了彼此,感谢遇见!
  • 不知道为什么,我觉得你和别人很不一样
  • 希望你接下来的日子里,没有狗血情节,也没有崎岖波折,平平淡淡,顺顺当当,健健康康,喜乐安好!
  • 不要因为别人的一句话,而夺走你今天的快乐
  • 你的评论和鼓励像一碗粥,可能不够粘稠,却足以温暖我的心
  • 亲爱的朋友,我宁愿看到你伤心愤怒的样子,也不愿意看见你假装高兴
  • 说了这么多,就想告诉你,我很在乎你,不是因为我执着,而是因为你值得
  • 你可能想问我过的怎么样?我过得还可以,不好不坏,不惊不喜,一切只是还可以
  • 一年四季会有很多意外,但最迷人的还是遇见了你
  • 花开可要欣赏,然后就去远行。唯有不等花谢,才能记得花红
  • 我的酒量,大概就是三瓶啤酒或者和半杯白酒,亦或者你的微微一笑
  • 晚安这个词,好像变成了一种礼貌,睡不睡谁知道呢,反正话题是终止了……
  • 话说多了比较难堪,不如沉默来得可爱, 就这样吧,谢谢你呀 !

Linux中HTTP协议

1.HTTP的概念

HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础设计HTTP最初的目的是为了提供一种远距离共享知识的方式,借助多文档进行关联实现超文本,连成相互参阅的WWW(world wide web,万维网)。

HTTP的发展是由蒂姆·伯纳斯-李(Tim Berners-Lee)于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1版。

2..HTTP通信过程

在 HTTP 工作开始之前,Web 浏览器首先要通过网络与 Web 服务器建立连接,该连接是通过TCP来完成的,该协议与 IP 协议共同构建 Internet,即著名的 TCP/IP 协议,因此 Internet 又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议进行连接后才能进行更高层协议的连接,一般TCP连接的端口号是80。建立TCP连接需要找到连接主机,所以需要先解析域名得到IP地址再找到主机进行3次握手进行TCP连接。

 3.HTTP 请求访问的完整过程

  1. 建立连接

  2. 接收请求

  3. 处理请求

  4. 访问资源

  5. 构建响应报文

  6. 发送响应报文

  7. 记录日志

  4.HTTP 协议版本

4.1 http/0.9

1991,原型版本,功能简陋,只有一个命令GET。GET /index.html ,服务器只能回应HTML格式字符串,不能回应别的格式。(只有下载功能)

4.2http/1.0

每个TCP连接只能发送一个请求,发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接引入了POST命令和HEAD命令头信息是 ASCII 码,后面数据可为任何格式。服务器回应时会告诉客户端,数据是什么格式,即Content-Type字段的作用。这些数据类型总称为MIME 多用途互联网邮件扩展,每个值包括一级类型和二级类型,预定义的类型,也可自定义类型, 常见Content-Type值:text/xml image/jpeg audio/mp3。 (有上传和下载功能)

4.3http/1.1

 1997年1月,引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive。对于同一个域名,大多数浏览器允许同时建立6个持久连接引入了管道机制,即在同一个TCP连接里,客户端可以同时发送多个请求,进一步改进了HTTP协议的效率新增方法:PUT、PATCH、OPTIONS、DELETE同一个TCP连接里,所有的数据通信是按次序进行的。服务器只能顺序处理回应,前面的回应慢,会有许多请求排队,造成"队头堵塞"(Head-of-line blocking)为避免上述问题,两种方法:一是减少请求数,二是同时多开持久连接。网页优化技巧,如合并脚本和样式表、将图片嵌入CSS代码、域名分片(domain sharding)等HTTP 协议不带有状态,每次请求都必须附上所有信息。请求的很多字段都是重复的,浪费带宽,影响速度。(在原来的基础上增加了长连接的功能)

  5.HTTP 工作机制

一次http事务包括:

  • http请求:http request

  • http响应:http response

Web资源:web resource, 一个网页由多个资源(文件)构成,打开一个页面,通常会有多个资源展示出来,但是每个资源都要单独请求。因此,一个"Web 页面”通常并不是单个资源,而是一组资源的集合

资源类型:

  • 静态文件:无需服务端做出额外处理,服务器端和客户端的文件内容相同

    常见文件后缀:.html, .txt, .jpg, .js, .css, .mp3, .avi

  • 动态文件:服务端执行程序,返回执行的结果,服务器端和客户端的文件内容不相同

    常见文件后缀:.php, .jsp ,.asp

 提高HTTP连接性能

  • 并行连接:通过多条TCP连接发起并发的HTTP请求

  • 持久连接:keep-alive,重用TCP连接,以消除连接和关闭的时延,以事务个数和时间来决定是否关闭连接

  • 管道化连接:通过共享TCP连接,发起并发的HTTP请求

  • 复用的连接:交替传送请求和响应报文(实验阶段)

 

 6.HTTP请求报文

 

请求行:请求行由请求方法、URL 以及协议版本三部分组成。
请求头:请求头为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。
空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要,必不可少。
请求体:请求体是请求提交的参数,GET 方法已经在 URL 中指明了参数,所以提交时没有数据。POST 方法提交的参数在请求体中。

7.http协议常用的状态码

200: 成功,请求数据通过响应报文的entity-body部分发送;OK
301: 请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所处的新位置;Moved Permanently
302: 响应报文Location指明资源临时新位置 Moved Temporarily
304: 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端;Not Modified
307:  浏览器内部重定向
401: 需要输入账号和密码认证方能访问资源;Unauthorized
403: 请求被禁止;Forbidden
404: 服务器无法找到客户端请求的资源;Not Found
500: 服务器内部错误;Internal Server Error,比如:cgi程序没有执行权限
502: 代理服务器从后端服务器收到了一条伪响应,如无法连接到网关;Bad Gateway
503: 服务不可用,临时服务器维护或过载,服务器无法处理请求,比如:php服务停止,无法处理php程序
504: 网关超时

 

posted @   行走的泡泡  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示