HTTP协议基础知识学习

笔者对于HTTP协议也是初学,写这篇文章的主要目的是方便自己去理解HTTP协议的相关内容,所以有些描述并不是那么专业和全面,请多多包涵。

一、HTTP协议概述

  • HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
  • HTTP是一个应用层协议,由请求和响应构成,是一个标准的个客户端/服务器(C/S)模型。
    HTTP基于TCP/IP通信协议来传递数据。

HTTP就是Internet上的一个传输协议,本身一个C/S模型,基于TCP/IP通信协议来传递数据。
所谓协议就是通信双方共同约定的标准,就和人类的语言一样,只有具有相同协议(语言)的双方才能很好地通信。

二、HTTP主要特点

  • 基于请求/响应模型的:一次请求对应一次响应

客户端一般是终端,服务器端一般是网站。通过使用Web浏览器等工具,客户端发起一个HTTP请求,建立一个到服务器指定端口的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行和消息。

  • 基于TCP/IP的高级协议

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。

在这里,对TCP/IP的细节不做过多阐释,知道是一个协议(簇)就好了。

  • 无状态的:每次请求之间相互独立,不能交互数据

无状态是指协议对于事务处理没有记忆能力。这种方式的一个坏处就是,如果后续的处理需要用到之前的信息,则必须要重传,这样就导致了每次连接传输的数据量增大。好处就是,如果后续的连接不需要之前提供的信息,响应就会比较快。

  • 无连接

无连接指的是限制每次连接只处理一个请求。服务器处理完客户端的请求,然后响应,并收到应答之后,就断开连接。这种方式可以节省传输时间。

  • 默认端口号:80

三、HTTP请求

HTTP请求的格式为:请求行+请求头+请求空行+请求体(正文)

1.请求行

格式:请求方式+请求url+请求协议/版本

  • 请求方式
    最常用的为GETPOST

    • GET
    • 当客户端要从服务器上读取文档,点开某个链接,或者是通过浏览器上输入网址来浏览网页的时候,使用的都是GET方法,
    • GET方法请求参数和对应的值附加在URL后面,利用一个?代表URL的结尾以及附带参数的开始,参数用key=value键值对的方式书写,参数和参数之间用&符号隔开
    • 一般GET请求的参数的大小受限,最大不超过1024。
    • 由于参数明文的显示在了URL上面,因此不太适合传递私密的数据。
      来源:GET
    • POST
    • POST方法将请求的参数封装在了HTTP请求的请求体中,以名称/值的形式出现,请求的url长度没有限制。
    • POST请求一般用于表单数据的提交中。
    • 相对GET而言,POST较安全

2.请求头

请求头是客户端浏览器告诉服务器一些特殊信息。
格式:请求头名:请求头值
常用的请求头有

扫描二维码关注公众号,回复: 9648092 查看本文章
  • User-Agent
    浏览器告诉服务器,我访问你使用的浏览器版本信息
  • Referer
    表示跳转到当前页面的之前的页面
  • Accept
    可接收的响应内容类型
  • Origin
    发起一个针对跨域资源共享的请求

3.请求空行

分割POST请求的请求头,和请求体。

4.请求体

封装POST请求消息的请求参数。

四、HTTP响应

格式:状态行+响应头+空行+响应体

1.状态行

格式:HTTP协议版本+状态码+状态码的描述
常见的状态码有

  • 404
    服务器无法找到被请求的页面
  • 403
    对被请求页面的访问被禁止

状态码详情可参考大佬博客HTTP响应状态码参考

2.响应头

由一些键值对构成,用来说明客户端要使用的一些附加信息。

3.空行

用于分割响应头和响应体。

4.响应体

服务器返回给客户端的具体信息。

在这里插入图片描述
2019.12.15

参考资料:

发布了52 篇原创文章 · 获赞 59 · 访问量 6832

猜你喜欢

转载自blog.csdn.net/ataraxy_/article/details/103547767