HTTP协议记录 | 青训营笔记

75 阅读3分钟

HTTP(Hypertext Transfer Protocol)超文本传输协议,它是应用层的一种协议,以请求响应模式工作,http是无状态的,也就是说单单使用http协议去通讯的话在客户端发送一个请求后收到一个应答,客户端下一次再发一个请求服务端是认不得是上一个客户端的。http协议应用最广的就是在web上了吧,说web应用是建立在http协议的基础也不为过吧。 在大学期间接触最多的应用层协议应该也是HTTP了,在此写下一篇笔记记录下之前接触到的http开发和青训营课程学习到相关的内容吧

HTTP方法

  • GET 方法请求一个指定资源的表示形式,使用 GET 的请求应该只被用于获取数据。
  • HEAD 方法请求一个与 GET 请求的响应相同的响应,但没有响应体。
  • POST 方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用。
  • PUT 方法用有效载荷请求替换目标资源的所有当前表示。
  • DELETE 方法删除指定的资源。
  • CONNECT 方法建立一个到由目标资源标识的服务器的隧道。
  • OPTIONS 方法用于描述目标资源的通信选项。
  • TRACE 方法沿着到目标资源的路径执行一个消息环回测试。
  • PATCH 方法用于对资源应用部分修改

HTTP请求消息

  • 请求头,包含请求方法、请求资源、http协议版本
  • 消息头,包含一些浏览器信息、用户认证信息等
  • 消息体,包含向服务端发送的数据(消息体只有在POST请求的时候会插入)

HTTP响应信息

  • 状态行,包含http协议版本号、状态码、处理结果
  • 消息头,包含服务器类型、内容类型、内容长度等
  • 消息体,携带具体传输的实际数据,如html网页、图片等内容

restful api

restful api是指使用rest风格的api,我们在写后端api的时候,其实就是在对资源进行操作,而对资源的操作包括获取、创建、修改和删除,正好对应HTTP协议中的GET、POST、PUT和DELETE方法,那么在我们对在对同一个资源操作的时候就不用写多个请求url了,使用不同方法就可以区分不同的操作。

认识http我还是想要理清一下http协议上下层还有什么搭配使用或者基于什么,http一般是基于TCP连接的也就是在客户端发送请求与服务端建立连接时候服务端是已经完成了bind()、listen()这些系统调用等着客户端connect()过来,然后使用accept()双方建立起socket通信作TCP通讯。然后http作为无状态的协议也是不能保证传输通信的安全性的通常会使用ssl加密来提高网站的安全性。