前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机网络·基础知识·面经·HTTP

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

作者头像
陈黎栋
发布2020-02-18 14:57:33
7760
发布2020-02-18 14:57:33
举报
  • 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连接属于请求-响应形式,服务端可主动将消息推送给客户端。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档