专栏首页陈黎栋的专栏啦计算机网络·基础知识·面经·HTTP

计算机网络·基础知识·面经·HTTP

  • HTTP请求是指从客户端到服务器端的请求消息。
  • Http的状态码
    • 1XX 信息类,客户端应当继续发送请求
    • 2XX 成功状态码,表示请求被正确接收,理解,接受
    • 3XX 表示重定向
    • 4XX 表示客户端错误
    • 5XX 表示服务器错误
  • HTTP请求报文结构由4部分组成
    • (1)请求方法 资源名称(URI) 协议/版本, 只占一行
    • (2)请求头(Request Header),多行
    • (3)空行
    • (4)请求正文,一般是查询字符串信息, 有多种格式
    • 例子:
      • GET /hello.txt HTTP/1.1
      • Accept:image/gif.image/jpeg.*/* Accept-Language:zh-cn, en, mi Connection:Keep-Alive Host:localhost
      • Host: www.example.com User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)
      • User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Accept-Encoding:gzip,deflate.
      • //请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,下面是请求正文
      • username=jinqiao&password=1234
  • HTTP响应报文结构由4部分组成
    • <status-line>//状态行 包括:服务器HTTP协议版本 响应状态码 状态码的文本描述 <headers>//消息报头 <blank line>//空行 <response-body>//响应体
    • 例子:
      • HTTP/1.1 200 OK //服务器HTTP协议版本 响应状态码 状态码的文本描述
      • Date:Sat,15Oct201115:39:29
      • <blank line>//空行
      • (空响应体)
  • HTTP持久连接分为流水线和非流水线两种方式
  • https在平时的项目中有用到过吗?
    • 涉及传递用户隐私时
    • 做javaweb项目时要把http改为https
  • HTTP协议建立在TCP之上
  • HTTP两种连接形式:无连接与Keep-Alive
    • 无连接是指客户端与服务器之间不保持TCP连接,每个HTTP请求都要求打开一个TCP连接,并且使用一次之后就断开这个TCP连接。
    • Keep-Alive的作用就是在第一次创建TCP连接时,服务器会把这个TCP连接保持一段时间。这样就可以在一次TCP连接中可以持续发送多份数据而不会断开连接。通过使用Keep-Alive机制,可以减少TCP连接建立次数。
  • HTTP无状态:
    • 无状态是指HTTP协议对于事务处理没有记忆能力。每次的请求都是独立的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况。
    • 但基于HTTP协议的Web应用需要有状态(例如,购物车程序需要知道用户到底在之前选择了什么商品)。于是,用于保持Web应用状态的技术:Cookie与Session诞生了。

9. Http request的几种类型。

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。 需要一些实战

Get获取由Request-URI所标识的资源的信息。

POST方法用于想服务器发送请求,传输实体主体。

HEAD方法与GET方法几乎是一样的, 它们的区别在于HEAD方法只是请求消息报头,而不是完整的内容。

HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法

put用于传输文件

10. Http1.1和Http1.0的区别

在 HTTP/1.0 中,大多实现为每个请求/响应交换使用新的连接。

HTTP/1.1 很快出来了,提出了持久连接(persistent connection)的概念,也就是说同一条 HTTP 连接,可以同时处理多个请求,同时用一定的机制保证各个请求之间的分离性。

. Http请求的过程与原理

http://www.cnblogs.com/GumpYan/p/5821193.html

HTTP请求的过程&HTTP/1.0和HTTP/1.1的区别&HTTP怎么处理长连接

. Http怎么处理长连接。

在HTTP1.0和HTTP1.1协议中都有对长连接的支持。其中HTTP1.0需要在request中增加”Connection: keep-alive“ header才能够支持,而HTTP1.1默认支持.

http://www.cnblogs.com/GumpYan/p/5821193.html

HTTP请求的过程&HTTP/1.0和HTTP/1.1的区别&HTTP怎么处理长连接

HTTP2

http2的新特性:多路复用 二进制分帧 首部压缩(Header Compression) 服务端推送(Server Push)

目前 HTTP2 协议已经逐渐普及到日常服务器中,以下对于 HTTP2 协议描述正确的是:ABCD

  • 所有http请求都建立在一个TCP请求上,实现多路复用
  • 可以给请求添加优先级
  • 服务器主动推送 server push
  • HTTP2的头部会减小,从而减少流量传输

http://www.runoob.com/http/http-messages.html

  • (超纲)http和socket的区别,两个协议哪个更高效一点

HTTP:超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。HTTP协议详细规定了浏览器与服务器之间相互通信的规则,是万维网交换信息的基础。HTTP是基于请求-响应形式并且是短连接,并且是无状态的协议。针对其无状态特性,在实际应用中又需要有状态的形式,因此一般会通过session/cookie技术来解决此问题。

Socket:Socket不属于协议范畴,而是一个调用接口(API),Socket是对TCP/IP协议的封装,通过调用Socket,才能使用TCP/IP协议。Socket连接是长连接,理论上客户端和服务器端一旦建立连接将不会主动断开此连接。Socket连接属于请求-响应形式,服务端可主动将消息推送给客户端。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java Code review 一些原则的原因探讨

    陈黎栋
  • Neo4j服务关闭启动·常用配置·快速设定新密码

    Neo4j分社区版(Community Edition)和企业版(Enterprise Edition),社区版本为免费版本。目前的最新版本为Neo4j 3.1...

    陈黎栋
  • 计算机网络·感觉Java研发计算机网络只要会者几道就够了其他很少考

    【运维方向优先】a. 请描述TCP协议3次握手建立连接的过程。b. 为什么协议设计是3次握手连接建立而不是2次或4次,如果2次有什么问题,如果4次有什么问题?

    陈黎栋
  • 啊,http2还没搞明白,http3又来了?

    这就有点慌了,连 HTTP2 都还没搞明白, HTTP3 已经出来了。但 HTTP3 会受到关注也是有理由的:它速度很快。

    运维部落
  • HTTP1.1与前端性能

    HTTP协议是前端性能乃至安全中一个非常重要的话题,最近在看《web性能权威指南(High Performance Browser Networking)》,把...

    腾讯IVWEB团队
  • 解密HTTP/2与HTTP/3 的新特性

    HTTP/2 相比于 HTTP/1.1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何优雅降级应...

    浪里行舟
  • HTTP1.1与前端性能

    本文作者:IMWeb yangchunwen 原文出处:IMWeb社区 未经同意,禁止转载 HTTP协议是前端性能乃至安全中一个非常重要的话题,最近在...

    IMWeb前端团队
  • 利用HTTP/2与HTTP/3 给你的网站提速!!

    HTTP/2 相比于 HTTP/1.1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何优雅降级应...

    架构师修行之路
  • 【HTTP】216-一文读懂HTTP/2 及 HTTP/3特性

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

    pingan8787
  • 网络编程之HTTP协议整理分析

    维基百科上解释为:超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层...

    lyb-geek

扫码关注云+社区

领取腾讯云代金券