http协议称为超文本传输协议
URL
URL是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁表示,是互联网上标准资源的地址。互联网上每个文件都有一个唯一的URL,它包含的信息支出文件的位置以及浏览器应该怎么处理它。
HTTP URL 是一种特殊的URI,它包含了用于查找某个资源的足够的信息,其格式如下:
http://host[":"port][abs_path]
http表示要通过http协议来定位网络资源,host表示合法的internet主机域名或者ip地址。
port指定一个端口号,为空则使用缺省端口号80;abs_path指定请求资源的URI;如果,URL中没有给出abs_path,那么当他作为请求URI时,必须以”/“的形式给出,通常这个工作由浏览器帮我们自动完成。
http协议报文
http请求报文:
http请求由四个部分组成,分别是请求行,消息报头,空行,请求正文
http 请求的属性以冒号分割的键值对,每组属性之间使用\n分隔,遇到空行表示报头部分结束。
请求行以一个方法符号开头,以空格隔开,后面跟着请求的URI和协议的版本。
空行后面的内容都是请求正文,Body允许为空字符串,如果存在则在header中会有一个content-length属性来表示Body的长度。
Http响应报文
在接收和解释请求消息后,服务器返回一个HTTP响应消息。HTTP响应也是由四个部分组成,分别是:状态行、消息报头、空行、响应正文
状态行格式:HTTP-Version Status-Code Reason-Phrase CRLF。其中,HTTP-Version表示服务器HTTP协议的版本,Status-Code表示服务器发回的响应状态代码,Reason-Phrase表示状态代码的文本描述
Header为响应的属性, 冒号分割的键值对。每组属性之间使用\n分隔,遇到空行表示Header部分结束
空行后面的内容都是Body。 Body允许为空字符串, 如果Body存在,则在Header中会有一个 Content-Length属性来标识Body的长度,如果服务器返回了一个html页面,那么html页面内容就是在 body中。
http请求的方法
HTTP的状态码 状态代码有三位数字组成,第一个数字定义了响应的类别,它有五种可能取值:
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收并处理
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求
常见的状态码:
200 OK :客户端请求成功
400 Bad Request :客户端请求有语法错误,不能被服务器所理解
401 Unauthorized :请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden :服务器收到请求,但是拒绝提供服务
404 Not Found :请求资源不存在,可能是输入了错误的URL
500 Internal Server Error :服务器发生不可预期的错误
503 Server Unavailable :服务器当前不能处理客户端的请求,一段时间后可能恢复正常
http 与 https: 详细解析 HTTP 与 HTTPS 的区别 - 掘金 (juejin.cn)