浏览器请求:
GET / HTTP/1.1
Host: www.example.com
…
解读:
GET方式(即用户请求的信息全在URL中,而不是像POST 将部分要请求的数据隐藏起来提交)
GET后面的 / 是path 指你要获取的路径 这里指的是www.example.com/(index.html)
如果是GET /qwq/e HTTP/1.1 就会是www.example.com/qwq/e
/ 指的就是文件根目录
HTTP/1.1 是超文本传输协议/协议版本
Host是完全限定域名(完整域名) 其中 example.com指的是母域名 www是主机名(这个主机可能是某个服务器集群)
服务器响应:
HTTP/1.1 200 OK
Content-Type: text/html
…
解读:
200是状态码 OK就是字面意义上的ok(一般就是对状态码的简单解释)
Content-Type(内容类型): 数据类别/具体数据类型(这整个称为MIME类型)(text/html表示为文本类型(目前也就只有这个类型)的html网页)
MIME多用途互联网邮件扩展类型是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
七大数据类别:video,image,application,text,audio,multipart,message
与类别组合的具体数据类型:html,xml,rtf,pdf,word,png,gif,mid,mp4,avi之类的
还有一些奇怪的后缀参见https://baike.baidu.com/item/MIME/2900607?fr=aladdin
诸如Content-Type: text/html之类的模式,键:值,在HTTP中 被称为HTTP标头(HTTP headers)
其他状态码:
301 Moved Permanently
表示网页重定向(301 Moved Permanently 意为永久迁移 302 Moved Temporarily 意为临时迁移 不过现在都是混用),这时浏览器通常会进行跳转(即重定向)
如在网站中输入 baidu.com 他会先返回302 然后重定向到www.baidu.com
但根据:https://blog.csdn.net/weixin_43595755/article/details/121912898
建议是尽量使用301跳转 302跳转可能会发生URL劫持
值得一提的是 当发生网页重定向时,HTTP网页回应的HTTP标头中 会包含一项叫Location的数据,用于告诉请求的浏览器,重定向后的网页的URL
304状态码意味着请求已经响应,但由于该网页之前已经访问过 且网页内容文件不不变,浏览器会使用之前已经访问的时候缓存的网页文件
307 Temporary Redirect(临时重定向)是表示重定向的响应状态码,说明请求的资源暂时地被移动到 Location 首部所指向的 URL 上(跟302的区别在于307 状态码可以确保请求方法和消息主体不会发生变化。)
401 Unauthorized 403 Forbidden的状态码都意味着无权限访问,这说明可能访问了某些不该访问的网址,或者访问该网址的数据不对(姿势不对),比如标头中某些不对,或者请求的参数不对,访问时未登入之类的
状态码418 I’m a Teapot我是一个茶壶
这是个彩蛋,是一个愚人节笑话
500 Internal Server Error网络服务器错误 指服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的源代码出错时出现。
503 Service Unavailable 服务不可用,比如服务器超载了之类的情况,此时服务器无法处理请求。
1024程序员节快乐吖