You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

一、HTTP

HTTP协议(超文本传输协议HyperText Transfer Protocol)它是基于TCP协议的应用层传输协议简单来说就是客户端和服务端进行数据传输的一种规则。 特点:

  1. 支持客户/服务器模式。
  2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GETHEADPOST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  3. 灵活HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  4. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。早期这么做的原因是请求资源少,追求快。后来通过Connection: Keep-Alive实现长连接
  5. 无状态HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息则它必须重传这样可能导致每次连接传送的数据量增大因此引入了Cookie。另一方面在服务器不需要先前信息时它的应答就较快

1.URL

URL 包含了用于查找某个资源的详细信息, 格式如下

http://host[":"port][abs_path]

2.Request

!Pasted image 20231116170052.png http请求由请求行消息报头请求正文三部分构成。

2.1 状态行

请求行由请求MethodURL 字段和HTTP Version三部分构成,例:

GET /example.html HTTP/1.1 (CRLF)

Method

  • GET
  • POST
  • HEAD
  • PUT
  • DELETE
  • TRACE
  • OPTIONS

2.2 请求头

!Pasted image 20231116170713.png

2.3 请求正文

只有在发送POST请求时才会有请求正文,GET方法并没有请求正文

3.Response

!Pasted image 20231116170802.png 响应与请求类似

3.1 状态行

状态行也由三部分组成包括HTTP协议的版本状态码以及对状态码的文本描述

HTTP/1.1 200 OK CRLF

3.2 状态码

状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值: 1xx指示信息 - 表示请求已接收,继续处理 2xx成功 - 表示请求已被成功接收、理解、接受 3xx重定向 - 要完成请求必须进行更进一步的操作 4xx客户端错误 - 请求有语法错误或请求无法实现 * 5xx服务器端错误 - 服务器未能实现合法的请求 !Pasted image 20231116171033.png !Pasted image 20231116171039.png !Pasted image 20231116171054.png !Pasted image 20231116171103.png

二、HTTPS