提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、HTTP协议是什么?
HTTP是应用层的协议:传输层必须使用tcp进行可靠传输,否则一旦数据丢失可能导致相对应的网页资源无法进行访问。
HTTP (hypertext transfer protocol)超文本传输语言;用于规定浏览器怎样向服务器发送请求,以及服务器怎样向浏览器响应请求,可以可靠的传输声音文本图像等多媒体文档。
二、URL
先解释一下什么是url:中文名称叫统一资源定位符,在整个互联网上表示某种资源
基本上由四个方面组成:
默认端口是80
三、HTTP交互的过程
大的步骤总共有4次:
(1)建立TCP连接
(2)客户端向服务器发送请求报文
(3)服务器向客户端发送响应报文
(4)释放TCP连接
如果将TCP连接描述的比较详细:
就包括浏览器向DNS服务器请求解析url,DNS将解析到的URL返回给浏览器
四、HTTP请求的方法
在http/1.1协议中一共定义了八种方法来获得指定的资源:
方法 | 功能 |
---|---|
GET | $向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意访问。 |
HEAD | 与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。 |
POST | 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。 |
PUT | 向指定资源位置上传其最新内容。 |
DELETE | 请求服务器删除Request-URI所标识的资源。 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断 |
OPTIONS | 这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用’*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。 |
在应用中使用POST和GET比较多两者的区别主要由两个方面
方法 | 存放位置 | 存放大小 |
---|---|---|
GET | 存放在请求行跟在URL后面 | 有限制:2k |
POST | 存放在HTTP中的请求包中 | 无限制 |
五、HTTP报文(响应和请求)
1.请求报文
2.响应报文
响应行头部举例:
六、HTTP响应的状态码
七、HTTP与HTTPS
HTTPS默认端口为443且进行加密
HTTP默认端口为80不加密
八、请求报文.
GET /api/pc-home-city/home-data/autoMobileData?callback=jQuery112408097236703762152_1627124166792&_=1627124166836 HTTP/1.1
Host: v2.sohu.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36 Edg/91.0.864.71
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: SUV=2104212115063K3V;
九、响应报文
HTTP/1.1 200 OK
Content-Type: text/javascript;charset=UTF-8
Content-Length: 7279
Connection: keep-alive
Server: nginx
Date: Sat, 24 Jul 2021 10:54:27 GMT
Cache-Control: no-cache
X-From-Sohu: X-SRC-Cached
FSS-Cache: from 4336953.6237507.6111062
FSS-Proxy: Powered by 3288361.4140339.5062454