1. HTTP响应的作用

2. HTTP响应报文格式

Untitled

Untitled

报文主体就是一个HTML页面

3. HTTP常见响应状态码

HTTP 状态码由三个十进制数字组成

HTTP 状态码共分为 5种类型

1** 信息响应,服务器收到请求,需要请求者继续执行操作。
2** 成功响应,操作被成功接收并处理。
3** 重定向,需要进一步的操作以完成请求。
4** 客户端响应,请求包含语法错误或无法完成请求。
5** 服务器响应,服务器在处理请求的过程中发生了错误。
态码 状态英文名称 中文描述
200 OK 请求成功。一般用于 GET 与 POST 请求
201 Created 已创建成功请求并创建了新的资源,通常用于 POST 或 PUT 请求
301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。
302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI。
304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源(响应消息中不包含响应体)客户端通常会缓存访问过的资源
401 Unauthorized 当前请求需要用户验证
403 Forbidden 服务器已经理解请求,但是拒绝执行它
404 Not Found 请求失败。服务器无法根据客户端的请求找到资源(网页)
408 Request Timeout 请求超时。服务器等待客户端发送的请求时间过长,超时。
400 Bad Request 1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。2、请求参数有误。
500 Internal Server Error 服务器遇到了不知道如何处理的情况
501 Not Implemented 此请求方法不被服务器支持且无法被处理。只有GET和HEAD是要求服务器支持的,它们必定不会返回此错误代码。
503 Service Unavailable 服务器没有准备好处理请求。由于超载或系统维护,服务器暂时的无法处理客户端的请求

4. 存储映射 I/O

存储映射 I/O(memory-mapped I/O)是一种基于内存区域的高级 I/O 操作,它能将一个文件映射到进程地址空间中的一块内存区域中,当从这段内存中读数据时,就相当于读文件中的数据(对文件进行 read 操 作),将数据写入这段内存时,则相当于将数据直接写入文件中(对文件进行 write 操作)。这样就可以在不使用基本 I/O 操作函数 read()和 write()的情况下执行 I/O 操作。访问效率更高

4.1 系统调用**mmap() 告诉内核将一个给定的文件映射到进程地址空间中的一块内存区域中**

void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);