HTTP协议

你猜一个 TCP 连接上面能发多少个 HTTP 请求

一道经典的面试题是从 URL 在浏览器被被输入到页面展现的过程中发生了什么,大多数回答都是说请求响应之后 DOM 怎么被构建,被绘制出来。但是你有没有想过,收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?

要搞懂这个问题,我们需要先解决下面五个问题:

  1. 现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开?
  2. 一个 TCP 连接可以对应几个 HTTP 请求?
  3. 一个 TCP 连接中 HTTP 请求发送可以一起发送么(比如一起发三个请求,再三个响应一起接收)?
  4. 为什么有的时候刷新页面不需要重新建立 SSL 连接?
  5. 浏览器对同一 Host 建立 TCP 连接到数量有没有限制?

先来谈谈第一个问题:现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开?

在 HTTP/1.0 中,一个服务器在发送完一个 HTTP

            

HTTP3 与 HTTP2 协议比较

责编 | 郭芮

HTTP/2 相比于 HTTP/1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何优雅降级应该是国内还不普遍使用的原因之一。

虽然 HTTP/2 提高了网页的性能,但是并不代表它已经是完美的了,HTTP/3 就是为了解决 HTTP/2 所存在的一些问题而被推出来的。

HTTP协议

HTTP协议是HyperText Transfer Protocol(超文本传输协议)的缩写,它是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。

伴随着计算机网络和浏览器的诞生,HTTP1.0也随之而来,处于计算机网络中的应用层,HTTP是建立在TCP协议之上,所以HTTP协议的瓶颈及其优化技巧都是基于TCP协议本身的特性,例如TCP建立连接的3次握手和断开连接的4次挥手以及每次建立连接带来的RTT延迟时间。…

            

一文读懂HTTP/2 及 HTTP/3特性

前言

HTTP/2 相比于 HTTP/1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何优雅降级应该是国内还不普遍使用的原因之一。

虽然 HTTP/2 提高了网页的性能,但是并不代表它已经是完美的了,HTTP/3 就是为了解决 HTTP/2 所存在的一些问题而被推出来的。…

        

思维导图 | HTTP 超文本协议,让 HTTP 不再难懂(二)​

思维导图 | HTTP 超文本协议,让 HTTP 不再难懂(二)​

 

相关阅读:

 

 

一张导图

 

思维导图 | HTTP 超文本协议,让 HTTP 不再难懂(二)​

 

导图内容解析

 

  • http请求

    • 请求行+请求头(多个key-value对象)+一个空行+实体内容

    • 请求行

      • 请求方法

        • 常见方法:get post head

思维导图 | HTTP 超文本协议,让 HTTP 不再难懂

思维导图 | HTTP 超文本协议,让 HTTP 不再难懂

 

相关阅读:

 

 

一张思维导图:

思维导图 | HTTP 超文本协议,让 HTTP 不再难懂

高清大图请点击阅读原文查看,或复制链接跳转:

  • http://upload-images.jianshu.io/upload_images/4120002-02a489103a926128.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

协议

  • HyperText Transfer Protocol,超文本传输协议
  • 一个无状态的请求/响应协议
  • 是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准
  • 基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)

工作原理

  • 默认端口号为80

软件工程师需要了解的网络知识:从铜线到HTTP

软件工程师需要了解的网络知识:从铜线到HTTP(一)—— 前言

 写作目标

本文面向中国互联网届众多的“应用软件工程师”,确切地说,面向 web 后端工程师(Java、PHP),web 前端工程师,移动开发工程师(iOS、Android)。本文将从铜线讲起,一路讲到 HTTP,为大家剖析出一个真实的“网络”。

写作由来

内容来源

前两天我给一个要跳槽的做 iOS 的哥们儿讲了几个小时的网络,给他的面试铺路,在讲之前,我就意识到了这次的内容如果能够整理一下将会是一套丰富的面向软件工程师的网络教程。…

            

php发送http put/patch/delete请求Demo

CURL请求对于PHPer是必备技能,使用curl_opt函数来发送各式各样的http请求动作,不仅限于get和post。
在测试自己的restful api的时候,通过访问这个代理发送http put/patch/delete请求的php页面,完成测试。请参考下面的DEMO。

<?php
/**
 * http.php
 * 用来向服务器的RESTful API发起各类HTTP请求的工具函数。
 *
 * 使用: http://localhost/http.php?action=xxx
 * xxx \in {get,post,put,patch,delete}
 *
 * Created by PhpStorm.
 * User: Lenix
 * Date: 2018/1/6
 * Time: 下午20:22
 */

class commonFunction{
    public function 
    

如何开启支持HTTP/2协议

鉴于HTTP/2的性能改进及主流浏览器都以支持,新浪云计划在近期对企业用户的部分上传了SSL的证书的域名开放使用HTTP/2功能,此功能默认关闭,需要用户自行开启。

HTTP/2诞生的背景

当前几乎所有互联网上的网页内容传输都采用了HTTP/1.1协议,随着网页内容和样式的发展,HTTP/1.1协议的劣势逐渐明显。…