HTTP是什么
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。
默认HTTP的端口号为80,HTTPS的端口号为443。
HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。
HTTP协议的组成
Http协议是由Http请求和响应组成。
当在浏览器中输入网址访问某个网站时,浏览器会将你的请求封装乘一个Http请求发送给服务器点,服务器接收到请求后会组织响应数据封装成一个Http响应返回给浏览器。
1.请求行
2.请求头
3.空行
4.请求体
请求报文
一个HTTP请求由请求行、请求头、空行和请求数据4个部分组成。
请求行
由三部分组成,请求方法、请求URL(不包括域名)、HTTP协议版本。
请求方法
GET:传递参数长度受限制,因为传递的参数是直接表示在地址栏中,而特定的浏览器和服务器对URL的长度是有限制的。因此GET请求不适合用来传递私密数据,也不太适合拿来传递大量数据
POST:传递的数据封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,对数据量没有限制,也不会显示在URL中
等。。。
- 计算机网络重点整理(全网搜集总结结尾附引用链接)
请求URL
- URI(Uniform Resource Identifier) 是统一资源标志符,可以唯一标识一个资源。
- URL(Uniform Resource Location) 是统一资源定位符,可以提供该资源的路径。它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源。
URI的作用像身份证号一样,URL的作用更像家庭住址一样。URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。
HTTP协议版本
1) HTTP 1.0
支持GET、POST、HEAD三种HTTP请求方法。
HTTP1.0 每次请求都需要建立新的TCP连接,连接不能复用。
2)HTTP1.1
该版本默认采用持久连接,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以降低线路负载,提高传输速度。
HTTP1.1新增了:OPTIONS、PUT、DELETE、TRACE、CONNECT五种HTTP请求方法
请求头
客户端发送给服务器端的一些信息,用键值对表示。
空行
请求头之后是一个空行,通知服务器以下不再有请求头
请求体
GET没有请求数据,POST有。
当请求方式是post时,请求体会有请求参数格式如下:
username=zhangsan&password=123
当请求方式时get时,请求参数是不会出现在请求体中,会拼接在url地址后面:
http://localhost:8080...?username=zhangsan&password=123
响应报文
HTTP响应报文和请求报文的结构差不多,也是由四个部分组成
服务器响应消息由 状态行、消息报头、空行、响应正文 组成,格式如下:
响应行
响应行=状态行
状态行:HTTP响应报文的第一行
状态行包括三个字段:协议版本、状态码与原因短语
状态码:由3位数字组成,第一个数字定义了响应的类别
响应头
服务器端将信息以键值对的形式返回给客户端
响应体
是服务器回写给客户端的页面正文,浏览器将正文加载到内存,然后解析渲染,显示在页面内容。
参考博客
- Http协议的组成
- HTTP 结构详解
- HTTP协议结构
- 计算机网络重点整理(全网搜集总结结尾附引用链接)