软件开发之http协议

2025-10-13 15:16:56

1、http协议

A:什么是协议?

协议就是甲乙双方共同遵守的办事规范

在java的应用程序中就是定义了接口

B:什么是http协议

它是由w3c指定的B/S结构中常用的一种通信协议

它的底层是TCP/IP  UDP

TCP/IP 可以保证传输数据的正确性  也就意味着传输效率低 (三次握手)

UDP 不保证数据传输正确,但是它的传输效率高

C:在常用的B/S结构中

就是客户端和服务器端使用http协议进行通信

客户端一般就是指的操作系统的浏览器

在浏览器和服务器端的通信中

从浏览器发送数据到服务器端叫做请求  (是指客户端需要从服务器端请求某个资源)  这个过程通常被叫做request

从服务器端发送数据到浏览器叫做响应  (是指服务器端对客户端的请求有一个反馈) 这个过程通常被叫做response

D:请求协议

请求协议的格式

包括请求行   请求头   空白行  请求体

GET /pro-servlet-08/HelloServlet HTTP/1.1       请求行   

Accept: text/html, application/xhtml+xml, */*   请求头

Referer: http://127.0.0.1:8080/pro-servlet-09/  请求头

Accept-Language: zh-CN                          请求头

User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)  请求头

Accept-Encoding: gzip, deflate                  请求头

Host: 127.0.0.1:8080                            请求头

Connection: Keep-Alive                          请求头

                                                空行

                                                请求体

                                               

请求行

包括三部分

GET /pro-servlet-08/HelloServlet HTTP/1.1   

GET:说明这次请求是使用get方式给服务器端发送的请求

/pro-servlet-08/HelloServlet:请求的资源的uri

HTTP/1.1 :http协议的版本

请求头

可以有多个  每一个就是一个名值对

Host: 127.0.0.1:8080       它的key就是host  值就是127.0.0.1:8080

空白行:   隔开请求头和请求体

请求体:只有使用post方式给服务器端发送数据  才会有请求体

     get方式发送数据没有请求体

     

使用get方式请求服务器端资源时同时要发送数据

eg:

/pro-servlet-08/HelloServlet?name=aaa&age=21

以上的请求uri的含义是在请求服务器端资源/pro-servlet-08/HelloServlet的同时

给服务器端发送两个参数  一个名称是name,值是aaa  另一个名称是age,值是21

请求协议

GET /pro-servlet-09/HelloServlet?name=aaa&age=21 HTTP/1.1

以上的请求行说明了使用get方式给服务器端发送参数是直接在请求行的uri的?后添加发送参数

使用get方式发送会造成浏览器的地址栏发生变化

Accept: text/html, application/xhtml+xml, */*

Referer: http://127.0.0.1:8080/pro-servlet-09/

Accept-Language: zh-CN

User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)

Accept-Encoding: gzip, deflate

Host: 127.0.0.1:8080

Connection: Keep-Alive

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢